home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / COMMUNIC / 3459.ZIP / EL-SFX.EXE / EAZILINK.DOC < prev    next >
Text File  |  1992-09-01  |  267KB  |  5,550 lines

  1.                               EAZILINK VERSION 4
  2.        
  3.                                   User Manual
  4.        
  5.                        Copyright (c) 1989-1992, SandSoft.
  6.                              All rights reserved.
  7.        
  8.        
  9.        
  10.        
  11.                                  INTRODUCTION
  12.        
  13.        
  14.        This  is version 4 of EaziLink.  All comments or suggestions  are 
  15.        welcome  and should be posted as public messages on The  SandSoft 
  16.        Support Board (Skipton (0756) 791298).  Please note that  details 
  17.        of BBS based technical support, for REGISTERED USERS, is included 
  18.        with the full registration package.  
  19.        
  20.        EaziLink is a general purpose communications package designed for 
  21.        communicating with BBS and Viewdata services.  In addition to the 
  22.        usual range of baud rates commonly offered by other packages, the 
  23.        1200/75  split  baud rate, still often used in Britain,  is  also 
  24.        supported  when speed buffered modems are used.
  25.         
  26.        EaziLink  should  run  on all IBM  PC/XT/AT  machines  and  close 
  27.        compatibles  with 640K+ of RAM and fitted with a VGA,  EGA,  CGA, 
  28.        MDA  or HGC video adapter. The program will run on high  capacity 
  29.        floppy  disk based systems (720K+ disk capacity) but full use  of 
  30.        all  features  is  much more practical with  a  hard  disk.   The 
  31.        program is supplied with default modem control strings to suit  a 
  32.        Miracle WS3000 modem but EaziLink can generally be configured  to 
  33.        suit  any Hayes compatible modem or one which has a very  similar 
  34.        range of capabilities.  
  35.        
  36.        EaziLink  is  configured to make use of  external  file  transfer 
  37.        protocol drivers rather than having such drivers built-in.   This 
  38.        approach offers maximum flexibility and enables improved  drivers 
  39.        to  be  incorporated  as  and when  they  are  released.   Please 
  40.        remember  that  these third party protocol drivers, such  as  the 
  41.        widely  available  DSZ  (tm), are  themselves  usually  Shareware 
  42.        products  and should be registered with the copyright holders  if 
  43.        you intend to use them with EaziLink.
  44.        
  45.        In  addition to the normal 'Originate Mode' where the user  dials 
  46.        out to achieve a connection, version 4 includes a powerful  'Host 
  47.        Mode'  in  which EaziLink can be set up as a BBS to  receive  and 
  48.        handle  incoming  calls.  EaziLink's host mode has  most  of  the 
  49.        features  expected  of a BBS and is very simple to set  up.  Host 
  50.        mode features include ANSI display support, user access levels, a 
  51.        sophisticated message base with bulk message download capability, 
  52.        16 File areas, 16 News bulletins, 16 Doors, user defined colours, 
  53.        menus and help screens, Archive viewing facilities and a flexible 
  54.        file Up/Download mechanism.
  55.        
  56.        This  manual is divided into two main logical  sections  entitled 
  57.        'ORIGINATE  MODE' and 'HOST MODE' covering these two basic  modes 
  58.        of  operation.   Two  computers  running  EaziLink  can  also  be 
  59.        connected locally by cable.  (See the DIRECT CONNECTION section)  
  60.        
  61.                            DISTRIBUTION RESTRICTIONS
  62.        
  63.        
  64.        Evaluation
  65.        
  66.        EaziLink is NOT a public domain or free package.   Non-registered 
  67.        users  of  EaziLink are granted a restricted license to  use  the 
  68.        product  for  a  limited evaluation  period,  to  determine  it's 
  69.        suitability for their purpose.  Continued use of EaziLink  beyond 
  70.        this   evaluation  period,  not  exceeding  21   days,   requires 
  71.        registration.
  72.        
  73.        
  74.        Package Integrity
  75.        
  76.        EaziLink  must  be distributed in a completely  unmodified  form, 
  77.        including all the original program, document and support files.
  78.        
  79.        
  80.        Commercial Organisations
  81.        
  82.        EaziLink  may not be distributed as part of any other product  or 
  83.        service  by  a  business, organisation  or  institution,  without 
  84.        entering  into  a  suitable  bulk  registration  agreement   with 
  85.        SandSoft.  Bulk registrations involve the supply of multiple full 
  86.        registration packages and attract a sliding scale of discounts up 
  87.        to a maximum of 40% -  
  88.        
  89.               5+  Copies      10% Discount
  90.              25+  Copies      20% Discount
  91.              50+  Copies      30% Discount
  92.             100+  Copies      40% Discount
  93.        
  94.        Where  a number of copies of EaziLink are to be used at the  same 
  95.        working location, a site license may be purchased.  Site licenses 
  96.        involve  the supply of one master disk and one printed  manual  - 
  97.        the reproduction and distribution of copies is the responsibility 
  98.        of the client.  Site licenses attract a fixed discount of 50% for 
  99.        all  copies after the first for which the full  registration  fee 
  100.        applies.   
  101.        
  102.        BBS operators may offer EaziLink for download and Shareware  disk 
  103.        vendors  may  distribute  the package freely,  provided  that  no 
  104.        charge is made for the software itself and provided that EaziLink 
  105.        is  not  supplied as part of a commercial package or  service  as 
  106.        outlined in the 'Commercial Organisations' section above.
  107.        
  108.        
  109.        Special Arrangements
  110.        
  111.        Organisations with special or unusual licensing requirements  are 
  112.        invited to contact SandSoft with their proposals.  SandSoft  will 
  113.        also consider requests for the production of customised  versions 
  114.        of this product.
  115.        
  116.                                  REGISTRATION
  117.        
  118.        
  119.        Individual copies of EaziLink v4 may be registered by sending the 
  120.        35.00 registration fee along with your name and address to:
  121.        
  122.        P.M. Opacic, 5 Lytham Close, Skipton, N. Yorks. BD23 2LF 
  123.        
  124.        The printed manual  is supplied only to users who have registered 
  125.        EaziLink  and paid the registration fee.  If you have  registered 
  126.        we  would  like to take this opportunity to thank  you  for  your 
  127.        support.  Please DO NOT copy and distribute the printed manual or 
  128.        the registered program disk supplied with it.
  129.        
  130.        If  you wish to pass on copies of EaziLink to  other  prospective 
  131.        users, please offer them the Shareware version only.
  132.        
  133.        Registration entitles you to future upgrades at reduced cost  and 
  134.        also  to  BBS based technical support.  A  standard  registration 
  135.        entitles  a user to run EaziLink on ONE computer at a  time.   If 
  136.        any  group or organisation requires multiple copies  of  EaziLink 
  137.        they  may negotiate a bulk registration agreement with  SandSoft, 
  138.        or purchase a site licence.  (See 'Distribution Restrictions')
  139.        
  140.        Note:  For  registrations outside the E.E.C.  please  include  an 
  141.        additional  4.00  to cover shipping costs -  Otherwise  SandSoft 
  142.        reserves the right to supply the manual on disk only.
  143.        
  144.        Using  the  EaziLink  technical support BBS we  will  attempt  to 
  145.        answer  queries,  receive  bug  reports  etc.   Details  of   any 
  146.        additions or improvements to EaziLink will also be posted on  the 
  147.        board.
  148.        
  149.        The SandSoft Support Board:   Skipton (0756) 791298
  150.        
  151.        Do  make use of the support board - It is provided for you  as  a 
  152.        registered user.
  153.        
  154.        The first time you log onto the support board leave a message  to 
  155.        the author of EaziLink, Michael Opacic, requesting upgrade.  Once 
  156.        upgraded  you will have access to an additional  registered  file 
  157.        area.  If you have any problems or queries please 'Post' a public 
  158.        message  on the support board.  We or other EaziLink  users  will 
  159.        help where possible.  We would appreciate your help in  compiling 
  160.        a list of computer/modem combinations on which users are  running 
  161.        EaziLink  along with the Modem Control strings and the Host  mode 
  162.        'Auto  Answer' string which they are using in  the  configuration 
  163.        section.  We would be very grateful if you would leave a message, 
  164.        containing the above information, on the board.  
  165.        
  166.                          THE FULL REGISTRATION PACKAGE
  167.        
  168.        
  169.        REGISTERED users will receive an up to date registered version of 
  170.        EaziLink  along with a printed and bound manual and a  number  of 
  171.        utility  programs  designed  to  be  used  with  EaziLink.   More 
  172.        utilities  are  being  produced  all the time  -  Some  of  those 
  173.        currently available are listed below.
  174.        
  175.        
  176.        EAZIEDIT.EXE
  177.        
  178.        A  fast  full  screen  ASCII  text  editor  using  WordStar  (tm) 
  179.        compatible  commands.   A comprehensive editor in which  all  the 
  180.        usual editing and block manipulation commands are supported.  You 
  181.        may install this as your external 'Editor'.
  182.        
  183.        
  184.        EAZIFILE.EXE
  185.        
  186.        A  file  management program which allows files to be  tagged  and 
  187.        copied,  deleted,  renamed etc.  This may be  installed  as  your 
  188.        external 'Filer'.
  189.        
  190.        
  191.        T40.EXE
  192.        
  193.        A utility which enables text only equivalents of Viewdata  '.I40' 
  194.        image files to be created.
  195.        
  196.        
  197.        ANSITYPE.EXE
  198.        
  199.        A  utility which enables the user to type files  containing  ANSI 
  200.        escape  codes  without  the need for  ANSI.SYS.   See  how  those 
  201.        EaziLink host mode screens will look.
  202.         
  203.        
  204.        TELESOFT.EXE
  205.        
  206.        An external telesoftware download protocol driver.  Download  CET 
  207.        frame  formatted  PC  telesoftware from  Prestel.   This  may  be 
  208.        installed in EAZILINK.PRO in the usual way.
  209.        
  210.        The  above files are also kept, fully updated, in the  registered 
  211.        files  area of the EaziLink support sub-board.  Registered  users 
  212.        are  given full access to this area and are free to download  any 
  213.        file.
  214.        
  215.        A  large  number  of  third  party  utility  programs,   designed 
  216.        specifically for use with EaziLink, are already available, or  in 
  217.        the process of being written, and will be made available to users 
  218.        via the support board. 
  219.        
  220.                           O R I G I N A T E   M O D E
  221.        
  222.        
  223.        
  224.                                  PROGRAM FILES
  225.        
  226.        
  227.        The  directory  where EAZILINK.EXE is located is referred  to  in 
  228.        this documentation as the 'main directory'.  The following  files 
  229.        are either supplied with the EaziLink system or are generated  by 
  230.        the facilities within the program:
  231.        
  232.        EAZILINK.EXE   The main program file.         (Supplied)
  233.        EAZILINK.OVL   Main program overlay file.     (Supplied)
  234.        EAZILINK.CNF   The configuration file.        (Generated by user) 
  235.        EAZILINK.LOG   The session usage log file.    (Generated by user)
  236.        EAZILINK.PRO   External protocol definitions. (Sample Supplied)
  237.        EAZILINK.DIR   Default dialling directory     (Sample supplied)
  238.         INSTALL.EXE   Installation program.          (Supplied)
  239.         DIRCON2.EXE   v3.x to v4.x DIR converter.    (Supplied)
  240.        VIEWDATA.FNT   CGA (mode 4) Viewdata font.    (Supplied)
  241.               *.DOC   Various documentation files.   (Supplied)
  242.               *.DIR   Other dialling directories     (Generated by user)
  243.               *.LDC   Long distance calls            (Generated by user) 
  244.               *.CAP   Text capture files.            (Generated by user)
  245.               *.I40   Viewdata Image files.          (Generated by user)
  246.               *.I80   ANSI/TTY BBS Image files.      (Generated by user)
  247.               *.KEY   Macro files.                   (Generated by user)
  248.               *.SCR   Auto log-on scripts.           (Samples Supplied)
  249.               *.MNU   Host mode menu files.          (Supplied)
  250.               *.HLP   Host mode help files.          (Supplied)
  251.                    
  252.        Host  mode related files are covered in the 'HOST  MODE'  section 
  253.        later in this manual.
  254.        
  255.        PLEASE NOTE
  256.        
  257.        The  system  files -  EAZILINK.EXE,  EAZILINK.OVL,  EAZILINK.DIR, 
  258.        EAZILINK.CNF,  EAZILINK.LOG  (and  HOST.LOG),  EAZILINK.PRO   and 
  259.        VIEWDATA.FNT MUST be located in the EaziLink main directory.
  260.        
  261.        The  '.SCR' Script files are best kept in a  separate  directory, 
  262.        off the main directory, called say 'SCRIPTS'.  The 'Script  Path' 
  263.        field  in  the configuration section must point to  the  selected 
  264.        directory.  (Note: default is main directory)
  265.        
  266.        External protocol drivers are best kept in a separate  directory, 
  267.        off  the main directory, called say 'XFER'.  The 'Protocol  Path' 
  268.        field  in  the configuration section must point to  the  selected 
  269.        directory. (Note: default is main directory)
  270.        
  271.        The file types '.MSG', '.CAP', '.I40/.I80', and '.KEY' may all be 
  272.        given  a specific default path in the configuration 'File  Paths' 
  273.        section.   This  helps to create an organised  and  tidy  working 
  274.        environment.  All will default to the main directory initially.
  275.       
  276.        
  277.        All  other  file types default to the main  directory  unless  an 
  278.        explicit path specification is included in the file name.  
  279.        
  280.        A typical hard disk directory set-up may be as follows.
  281.        
  282.        C:\EAZILINK            EaziLink main directory.
  283.        C:\EAZILINK\UPLOAD     Put uploads here prior to file transfer.
  284.        C:\EAZILINK\DOWNLOAD   All downloads are directed to here.
  285.        C:\EAZILINK\MESSAGES   All messages for sending go here.
  286.        C:\EAZILINK\CAPTURE    Capture files go here by default.
  287.        C:\EAZILINK\IMAGES     Image files go here by default.
  288.        C:\EAZILINK\MACROS     Keyboard macro files go here by default.
  289.        C:\EAZILINK\SCRIPTS    Auto log-on scripts stored here.
  290.        C:\EAZILINK\XFER       External protocol drivers stored here.
  291.        
  292.        
  293.        If Host mode is to be used then additional paths may be set up:
  294.        
  295.        C:\EAZILINK\HOSTMAIN   Host mode main main path.
  296.        C:\EAZILINK\HOSTMESS   Where Host mode messages are stored.
  297.        C:\EAZILINK\HOSTDOWN   Files available for users to download.
  298.        C:\EAZILINK\HOSTUP     Path where user uploads are to be stored.
  299.        
  300.        If  multiple  download  file areas are to  be  offered  then  the 
  301.        '\HOSTDOWN'  path will not be used since each download file  path 
  302.        will be defined in a special file 'FILES.HST' which is  described 
  303.        in the Host Mode section later.
  304.        
  305.                                  INSTALLATION
  306.        
  307.        
  308.        Automatic Installation
  309.        
  310.        If you are installing EaziLink on a hard disk or a large capacity 
  311.        floppy  disk, you can make installation relatively pain  free  by 
  312.        using the INSTALL.EXE file included with the package.  
  313.        
  314.        The auto-installation system creates directories, moves files and 
  315.        enters paths and modem control strings within EaziLink itself.  
  316.        
  317.        To auto-install EaziLink, follow these steps:
  318.        
  319.        1) Create a directory called 'EAZILINK' directly off the root   
  320.           directory of the drive on which you wish to install EaziLink.
  321.           Change  drive/directory  until  you are in  the  new  EAZILINK 
  322.           directory.
  323.        
  324.        2) Where the EaziLink files are stored in an archive, extract all 
  325.           EaziLink  files  from  the  archive  into  the  newly  created 
  326.           EAZILINK  directory.  Otherwise  simply  copy  all  the  files 
  327.           supplied into the EAZILINK directory.
  328.         
  329.           ALL the files supplied with the EaziLink package should now be 
  330.           located in the EAZILINK directory.
  331.        
  332.        3) Whilst in the EAZILINK directory, execute INSTALL.EXE from the 
  333.           command line - 'C>install'.  Follow the instructions as they
  334.           appear on-screen.
  335.        
  336.        If you have one of the modems listed in the install program,  you 
  337.        will not need to worry about modem control strings - they will be 
  338.        entered for you.
  339.        
  340.        
  341.        Manual Installation
  342.        
  343.        There follows a description of how to set up EaziLink  on a  hard 
  344.        disk system.  It is assumed that the hard disk is drive C:.
  345.        
  346.        If  the EaziLink package is in the form of an .ARC or  .ZIP  file 
  347.        use  PKXARC (tm) or PKUNZIP (tm) or a similar utility to  extract 
  348.        the  files  from  the  archive.   
  349.        
  350.        Create  a  new  directory  called, say  EAZILINK,  off  the  root 
  351.        directory of drive C: by executing the DOS command:
  352.        
  353.        C>MKDIR EAZILINK
  354.        
  355.        Change to this new directory:
  356.        
  357.        C>CHDIR EAZILINK 
  358.        
  359.        Now  copy the files - EAZILINK.EXE,  EAZILINK.OVL,  EAZILINK.DIR, 
  360.        EAZILINK.PRO, INSTALL.EXE and VIEWDATA.FNT into the newly created 
  361.        EAZILINK directory.
  362.        
  363.        Next  we create several new sub-directories within  the  EAZILINK 
  364.        directory:
  365.        
  366.        C>MKDIR UPLOAD
  367.        C>MKDIR DOWNLOAD
  368.        C>MKDIR MESSAGES
  369.        C>MKDIR CAPTURE
  370.        C>MKDIR IMAGES
  371.        C>MKDIR MACROS
  372.        C>MKDIR SCRIPTS
  373.        C>MKDIR XFER
  374.        
  375.        If Host mode is to be used you should also create 4 others:
  376.        
  377.        C>MKDIR HOSTMAIN
  378.        C>MKDIR HOSTMESS
  379.        C>MKDIR HOSTDOWN
  380.        C>MKDIR HOSTUP
  381.        
  382.        Change to the SCRIPTS directory:
  383.        
  384.        C>CHDIR SCRIPTS
  385.        
  386.        Now  copy  all  the  sample log-on script  files  with  the  .SCR 
  387.        extension  into  this  directory. 
  388.        
  389.        ELX.EXE and any external file transfer protocol drivers which you 
  390.        intend  to use should be copied into the XFER directory  and  all 
  391.        the  host  mode '.MNU' and '.HLP' files should be copied  to  the 
  392.        HOSTMAIN directory in a similar way.
  393.        
  394.        Now move back into the main EAZILINK directory:
  395.        
  396.        C>CHDIR ..
  397.        
  398.        To run EaziLink, simply type EAZILINK at the DOS prompt.   
  399.        
  400.        Note:  Run  the  Configure section from the  EaziLink  Main  Menu 
  401.        before  doing anything else - If you install  EaziLink  manually, 
  402.        ensure  that  you  set up the file  paths  in  the  configuration 
  403.        section to point to those which you created above.
  404.        
  405.                             FILE TRANSFER PROTOCOLS
  406.        
  407.        
  408.        All file transfer protocols used by EaziLink are External.   This 
  409.        provides the most flexible method of transferring files since the 
  410.        user  can  define  up  to 16 protocols  of  his/her  own  choice.  
  411.        The  only  protocol  supplied with EaziLink is our  own  ELX,  an 
  412.        Xmodem  implementation  -  Several  protocols  supported  by  the 
  413.        popular DSZ protocol driver have also been defined in the  sample 
  414.        'EAZILINK.PRO' file supplied with the package.  
  415.        
  416.        Please  do NOT edit the 'EAZILINK.PRO' file unless you know  what 
  417.        you  are doing.  You will be able to use ELXmodem right away  and 
  418.        also  those  protocols offered by DSZ IF you obtain  and  install 
  419.        DSZ.COM in the XFER directory.
  420.        
  421.        The installed protocols are available in both Originate and  Host 
  422.        modes  unless  suppressed in host mode by use of  the  semi-colon 
  423.        modifier the effect of which is described later in this section.
  424.        
  425.        The file 'EAZILINK.PRO' can be created and edited by any standard 
  426.        ASCII  text  editor.  Any line starting with a '\',  '.'  or  ';' 
  427.        character  is  considered to be a comment and is ignored  by  the 
  428.        program.   The General form of a complete protocol definition  is 
  429.        as follows:
  430.        
  431.        name MenuName 
  432.        hotkey Character
  433.        upload UploadCommandLine
  434.        download DownloadCommandLine
  435.        
  436.        where:
  437.        
  438.        'MenuName' is the protocols name as it is to appear on the menu.
  439.        'Character' is the key to be pressed to select it. (A..Z, 0..9)
  440.        'UploadCommandLine' is the full upload command line.
  441.        'DownloadCommandLine' is the full download command line.
  442.        
  443.        These four lines must be in the order shown and all lines must be 
  444.        present  for each protocol defined, or an error message  will  be 
  445.        generated  and  EaziLink will abort at start-up.  If any  of  the 
  446.        defined protocols are not to be offered to users calling EaziLink 
  447.        when  operating in host mode, add a semi-colon (;) to the end  of 
  448.        'MenuName'  i.e.  'MenuName;'.  This will  prevent  inappropriate 
  449.        protocols like, for example, a telesoftware downloader from being 
  450.        offered  to  callers  in  host mode  whilst  still  allowing  the 
  451.        protocol to be used in originate mode.
  452.        
  453.        Both  the  upload and download command lines are  the  lines  you 
  454.        would  normally type at the DOS prompt to invoke a file  transfer 
  455.        with  the  selected protocol.  These command  lines  may  contain 
  456.        'system variables' (fully described later) to pass information to 
  457.        the protocol driver.  These variables are as follows:
  458.        
  459.        %port     Is replaced by the current comms port number.
  460.       
  461.        %speed    Is replaced by the current baud rate.
  462.        %file     Is  replaced by the, user entered, file  name/s  to  be 
  463.                  transferred.
  464.        %path     Is replaced by the current path.  This is always  where 
  465.                  EaziLink  wants  incoming files to be stored,  in  both 
  466.                  Originate  and Host modes, and can be used  to  prevent 
  467.                  file  path specifications transmitted by DSZ  Ymodem  & 
  468.                  Zmodem from influencing the incoming file's location on 
  469.                  your disk.
  470.        
  471.        Note:  DSZ  does  not accept a root path in the  form  'A:\',  as 
  472.        passed by the %path variable, and DOS's CD command, as valid.  It 
  473.        will  only  accept a path without a trailing '\'.  You  must  use 
  474.        upload and download paths which are not root paths if you  intend 
  475.        to  use %path in a DSZ protocol definition, within  EAZILINK.PRO.  
  476.        For example If you wish to direct downloads to floppy drive 'A' - 
  477.        make  the  path 'A:\DOWNLOADS' and %path  will  direct  downloads 
  478.        correctly.
  479.        
  480.        If  a command line contains the '%file' system variable then  the 
  481.        user  is prompted to enter the file name/s before  file  transfer 
  482.        commences,  otherwise the file transfer routine will  expect  the 
  483.        names  to  be supplied in the header from the remote  service  as 
  484.        happens  in  the case of Zmodem.  Simpler protocols  like  Xmodem 
  485.        need the '%file' to be included in both send and receive modes.
  486.        
  487.        Example: 
  488.        
  489.        name Zmodem
  490.        hotkey Z
  491.        upload DSZ.COM port %port speed %speed sz %file
  492.        download DSZ.COM port %port speed %speed rz %path
  493.        
  494.        Note:  The extension '.COM', '.EXE' or '.BAT' MUST be  used  with 
  495.        the  protocol driver name since EaziLink executes each file  type 
  496.        differently.
  497.        
  498.        The  driver  name may contain a path specification,  to  indicate 
  499.        where the driver will be found.  If not, the protocol driver must 
  500.        be  in  the directory specified in  the  configuration  'Protocol 
  501.        Path' field.  Study the supplied EAZILINK.PRO file to see how the 
  502.        ELX and DSZ protocols have been defined.
  503.        
  504.        Note:  EaziLink executes those protocol drivers which  appear  in 
  505.        EAZILINK.PRO with a '.COM' or '.EXE' extension, directly as child 
  506.        processes without using the command processor - COMMAND.COM.   If 
  507.        the  extension  is '.BAT' then the command processor is  used  to 
  508.        execute  the protocol driver.  You may rarely find drivers  which 
  509.        need  to be executed by the DOS command processor - These  should 
  510.        be  set up as batch files which appear in EAZILINK.PRO  with  the 
  511.        extension  '.BAT'.  If an external protocol driver does not  work 
  512.        when  configured for EaziLink as ELX and DSZ are, try  installing 
  513.        it as a batch file. 
  514.        
  515.        IMPORTANT:  Where  a file transfer protocol is  configured  as  a 
  516.        batch file - the batch file and the protocol driver itself should 
  517.        both  be in the same directory - that which is indicated  by  the 
  518.        'Protocol Path' field in the configuration section.  The name  of 
  519.        the  driver  in the batch file itself MUST include  the  driver's 
  520.        FULL  path name.  This is necessary because once the  batch  file 
  521.        has gained control, EaziLink has no way of controlling where  the 
  522.        batch file should look for the executable driver itself.
  523.        
  524.        Our own Xmodem external protocol, ELX, is supplied with  EaziLink 
  525.        to ensure that users have at least one common protocol with which 
  526.        to  download more exotic protocol drivers like DSZ (tm).  ELX  is 
  527.        installed,  ready  for use, in the  supplied  EAZILINK.PRO  file.  
  528.        Make  sure  that  you  locate  ELX.EXE  in  the  'Protocol  Path' 
  529.        directory.
  530.        
  531.        Note: ELX is an Xmodem implementation but is installed to use hot 
  532.        key 'E' to avoid conflict with DSZ's Xmodem entry. (See ELX.DOC)
  533.        
  534.        A telesoftware downloader is also supplied in the full registered 
  535.        user  package  to  enable the downloading of  CET  frame  encoded 
  536.        telesoftware  from  Prestel  -  see  the  documentation  on   the 
  537.        registered disk for full operational details.
  538.        
  539.        Note:  Not all protocols work well at the split 1275  baud  rate, 
  540.        particularly when uploading (you are better off uploading at  300 
  541.        baud rather than 1275 where possible).  Where speed buffering  is 
  542.        being carried out within the modem, i.e. where the DTE speed  can 
  543.        be  higher than the line speed, you will need to set up  hardware 
  544.        handshaking  in  the EAZILINK.PRO definitions for ELX  and  DSZ's 
  545.        protocols (see the ELX and DSZ documentation for details).   This 
  546.        applies to most other protocols too.
  547.        
  548.        Note:  File  transfers are initiated in EaziLink using  the  keys 
  549.        PGUP  (Upload  or send a file) and PGDN (Download  or  receive  a 
  550.        file).  See the 'Online Options' section later.  Do make sure you 
  551.        have started the file transfer off at the remote host BEFORE  you 
  552.        start your own protocol via PGUP or PGDN.
  553.        
  554.                                MAIN MENU OPTIONS
  555.        
  556.        
  557.        On  program  start-up, immediately after  the  initial  copyright 
  558.        screen, the Main Menu is displayed.
  559.        
  560.                       +----------| MAIN MENU |----------+
  561.                       |                                 |
  562.                       |          Dial                   |
  563.                       |          Editor                 |
  564.                       |          Shell                  |
  565.                       |          Configure              |
  566.                       |          Terminal               |
  567.                       |          View                   |
  568.                       |          Keyboard               |
  569.                       |          Flash-back             |
  570.                       |          Host                   |
  571.                       |          Utilities              |
  572.                       |          Quit                   |
  573.                       |                                 |
  574.                       |                                 |
  575.                       | Access the dialling directory.  |
  576.                       +---------------------------------+
  577.        
  578.        The options available are as follows:
  579.        
  580.        
  581.        Dial
  582.        
  583.        Displays the dialling directory ready for making calls, making or 
  584.        editing directory entries etc. (see: THE DIALLING DIRECTORY)
  585.        
  586.        
  587.        Editor
  588.        
  589.        Invokes the editor specified by the user during the configuration 
  590.        procedure.
  591.        
  592.        
  593.        Shell
  594.        
  595.        Invokes  a DOS shell from which DOS commands and programs can  be 
  596.        executed.  Type exit at the DOS prompt to return to the program.
  597.        
  598.        
  599.        Configure
  600.        
  601.        Enables  default  settings to be selected and saved to  the  .CNF 
  602.        file.   This  file will be read when EaziLink is  started  up  in 
  603.        future and the settings it contains will be adopted.
  604.        
  605.        When  you first run EaziLink, select this option first  and  work 
  606.        through each installation section carefully.  Refer to your modem 
  607.        manual when entering modem control strings.  Don't forget to save 
  608.        the  configuration using the Save option.
  609.       
  610.        
  611.        Note:  All  program  configuration is  handled  by  this  option, 
  612.        including  that  related  to  the  Host  mode.  (see  CONFIGURING 
  613.        EAZILINK)
  614.        
  615.        
  616.        Terminal
  617.        
  618.        Enters terminal mode.  The terminal window consists of a 24  line 
  619.        screen with a status line at the foot of the screen.   Characters 
  620.        typed in are sent directly to the modem.
  621.        
  622.        Note:  If a number is dialled from the Terminal window the  comms 
  623.        parameters in the current configuration - 'Default Entry'  record 
  624.        is  used to make a connection and log-on to the  remote  service.  
  625.        Generally  Terminal  mode  should not be needed,  other  than  to 
  626.        program  the  memory on more advanced modems, and all  calls  are 
  627.        best made via the dialling directory if possible.  Changes can be 
  628.        made to the 'Default Entry' set-up via the 'Alt L' option  whilst 
  629.        in terminal mode.  (See 'Alt L' in the 'Online Options' section)
  630.        
  631.        IMPORTANT:  If  any  connect strings have  been  defined  in  the 
  632.        configuration's  'Modem  Control  String'  section,  then  before 
  633.        dialling  out in terminal mode you MUST send the commands to  the 
  634.        modem  to make it return extended word result strings - e.g.  'AT 
  635.        V1 X1', or whatever your modem requires.  If you do not do so the 
  636.        cryptic  'CONNECT'  string  will be confused with  the  300  baud 
  637.        'CONNECT'  string of the extended result string set.   EaziLink's 
  638.        ability  to drop back to a baud rate dictated by the modem,  will 
  639.        then  cause it to go on-line at 300 baud regardless of  the  baud 
  640.        rate  you have set in the configuration section.  The  connection 
  641.        will  then fail, unless, of course, it was intended to be  a  300 
  642.        baud connection.  If your modem's default state is to return full 
  643.        connect messages then this step will not be required.  
  644.        
  645.        
  646.        View
  647.        
  648.        Enables  full colour BBS and Viewdata images (captured  by  using 
  649.        the Alt I command whilst on-line) to be viewed.  A file directory 
  650.        window  is  opened, displaying image files  with  the  extensions 
  651.        'I40'  (Viewdata  images)  and  'I80'  (BBS  images),  ready  for 
  652.        selection  using  the highlighted cursor bar.  Page  through  the 
  653.        images in the file using the CURSOR UP (or PGUP), CURSOR DOWN (or 
  654.        PGDN), HOME and END keys.  The following options are available:
  655.        
  656.        (R)edirect...Select  a file to which any displayed image  can  be 
  657.                     appended by use of the (I)mage option.  This can  be 
  658.                     used  to  build up a special file  of  images  drawn 
  659.                     selectively   from  other  files.   Note  the   file 
  660.                     selected  is the same as that which is  selected  by 
  661.                     the on-line Alt R option - changing one changes  the 
  662.                     other.
  663.        (I)mage......Append the currently displayed image (the left  hand 
  664.                     image  in  the case of Viewdata I40 images)  to  the 
  665.       
  666.                     file selected by  (R)edirect.
  667.        (L)oad.......Load another image file for viewing.
  668.        (S)nap.......Viewdata Only.  Copy the image on the left hand side 
  669.                     of the screen to the right hand side.  By using Snap 
  670.                     and Load, any two Viewdata frames can be viewed side 
  671.                     by side in order to, for example, compare and  study 
  672.                     changes in stock values.
  673.            
  674.        Press ESC to return to the main menu.
  675.        
  676.        
  677.        Keyboard
  678.        
  679.        The  Keyboard option gives the user access to the keyboard  macro 
  680.        options.   Macros  may be edited, loaded or saved.   Please  note 
  681.        that macros are not automatically saved at any stage by  EaziLink 
  682.        -  this  operation must be performed by the user.   The  function 
  683.        keys F1..F10 may be defined in their Ctrl and Alt forms - a total 
  684.        of  20  definable  keys.   On entering edit  mode  the  first  10 
  685.        definitions are displayed for editing/entering.  Macros may be up 
  686.        to 255 characters long.  Use the up and down cursor keys to  move 
  687.        from  macro to macro and the PGUP and PGDN keys to  move  between 
  688.        the  shift modes.  Changes to a macro are committed to memory  by 
  689.        the four control keys above and also the ENTER key.  Press ESC to 
  690.        return to the Key menu.  If the default macro file 'EAZILINK.KEY' 
  691.        exists  in  the  configuration  'Macro  Path'  directory,  it  is 
  692.        automatically  loaded  at  program start-up  -  unless  the  '/m' 
  693.        command  line  parameter overrides it - see  the  MACROS  section 
  694.        later for full details.
  695.        
  696.        
  697.        Flash-back
  698.        
  699.        Text which has previously scrolled off the screen is captured  in 
  700.        a  special  buffer.  This buffer can be  re-sized,  as  described 
  701.        later in the configuration section, and can be viewed off-line by 
  702.        use  of this main menu option - the on-line equivalent is Alt  F. 
  703.        In  order to save memory the Flash-back buffer can be swapped  to 
  704.        disk during certain operations - More on this later.
  705.        
  706.        
  707.        Host
  708.        
  709.        Sets EaziLink in Host Mode.  See the separate 'HOST MODE' section 
  710.        of this manual.
  711.        
  712.        
  713.        Utilities
  714.        
  715.        Presents the Utilities menu.  The on-line Alt U option offers the 
  716.        same set of utilities.  The options available are:
  717.        
  718.           Command.......Execute a single DOS command.  Any command which 
  719.                         can  be entered at the DOS command line  may  be 
  720.                         executed  from  here.  If you want  EaziLink  to 
  721.       
  722.                         pause before regaining control, in order to  see 
  723.                         the resultant output of the command, then add  a 
  724.                         semi-colon ';' to the end of the command line.
  725.           Shell.........Run  the DOS shell.  Repeated on this  menu  for 
  726.                         convenience.
  727.           Editor........Run the editor defined in the configuration     
  728.                         section.  Repeated on this menu for convenience.
  729.           File manager..Run the file management program  defined in  the
  730.                         configuration 'Optional Utilities' section.
  731.           File Lister...Run the file listing program  defined in the
  732.                         configuration 'Optional Utilities' section.
  733.        
  734.        
  735.        Quit
  736.        
  737.        Exit  from  EaziLink  to  DOS.   The  currently  loaded  dialling 
  738.        directory and any associated '.LDC' file is saved and the capture 
  739.        and log files are closed where appropriate.
  740.        
  741.                              CONFIGURING EAZILINK
  742.        
  743.        
  744.        EaziLink  can be extensively configured to suit a users  hardware 
  745.        and  working  environment preferences.   Configurable  items  are 
  746.        presented on a menu:
  747.        
  748.                            +---| Configuration |---+
  749.                            |                       |
  750.                            |  Port Number          |
  751.                            |  Modem Control        |
  752.                            |  Dialling Delay       |
  753.                            |  Flash-Back Size      |
  754.                            |  File Paths           |
  755.                            |  Utilities            |
  756.                            |  Entry Format         |
  757.                            |  Host Mode            |
  758.                            |  Colour               |
  759.                            |  Alarm                |
  760.                            |  Log calls            |
  761.                            |  MOuse support        |
  762.                            |  SWapping             |
  763.                            |  Save Set-up          |
  764.                            |  Quit                 |
  765.                            |                       |
  766.                            +-----------------------+
  767.        
  768.        Any one or all items may be edited.  Remember that changes to the 
  769.        configuration will only be recorded in the  EAZILINK.CNF file  on 
  770.        the  disk  if the 'Save Set-up' option is  executed.
  771.        
  772.        The configuration section's menus have been designed to allow the 
  773.        user  to  cursor  up or down to any  particular  field  within  a 
  774.        configuration  block,  and thus edit  fields  selectively.   This 
  775.        mechanism  rotates around the menu fields - when it  reaches  the 
  776.        bottom  it returns to the top and vice versa.  When  all  changes 
  777.        have been made, press ESC to leave the block.  If any item in the 
  778.        block  has been changed you are prompted to indicate whether  you 
  779.        wish to keep the changes or not.  Editing these menus is now much 
  780.        quicker than in earlier versions of EaziLink. 
  781.        
  782.        
  783.        Port Number
  784.        
  785.        Select the comms port to be used 1..4. (if in doubt select port 1 
  786.        if  you have an external modem or port 2 in you have an  internal 
  787.        card modem)
  788.        
  789.        Modem Control
  790.        
  791.        The  modem  is controlled by EaziLink using the entries  made  in 
  792.        these fields:
  793.        
  794.           +----------------| Modem Control Strings |----------------+
  795.           | Reset        : ATZ ^M                                   |
  796.           | Init         : AT S7=40 S0=0 V1 X1 ^M                   |
  797.           | Init1275     : AT S26=10 S7=40 S0=0 X1 V1 ^M            |
  798.           | Hang Up      : ~~~+++~~~AT H0 ^M                        |
  799.           | Dial Prefix 1: AT <!> DP                                |
  800.           | Dial Prefix 2: AT <!> DP                                |
  801.           | Dial Prefix 3: AT <!> DP                                |
  802.           | Dial Prefix 4: AT <!> DP                                |
  803.           | Dial Prefix 5: AT <!> DP                                |
  804.           | Dial Prefix 6: AT <!> DP                                |
  805.           | Dial Postfix : ^M                                       |
  806.           | Dial Cancel  : ^M                                       |
  807.           | Command OK   : OK                                       |
  808.           | Connect Msgs : Edit?                                    |
  809.           | No Connect   : NO CARRIER,BUSY,NO ANSWER,NO DIALTONE    |
  810.           | Fix DTE Rate : No                                       |
  811.           +---------------------------------------------------------+
  812.        
  813.        Note:  The  following characters have special  effects  in  modem 
  814.        control strings:
  815.        
  816.             |    RETURN
  817.             ^    The  following  character  is  treated  as  a   control
  818.                  character  if  it  is in  the  range  '@'..'['  (0..27)
  819.                  otherwise the following character is sent as is.
  820.                  e.g.  ^M^J sends a carriage return followed by  a  line
  821.                  feed,  ^|  sends  a the '|' character  (not  RETURN  as
  822.                  usual), ^^ sends the '^' character itself.
  823.             ~    Causes a half second delay.
  824.             
  825.        The  default  strings  in EaziLink are suitable  for  Hayes  type 
  826.        modems.  The Init1275 string contains 'S26=10' which is  required 
  827.        by  the  Miracle WS3000 modem to set 12/75 baud rate.   Users  of 
  828.        this modem should find the default strings correct, but note that 
  829.        the various Hayes 'No Connect' strings, listed later, are not  in 
  830.        fact supported by the earlier WS3000s.
  831.        
  832.        The default modem control strings are as follows:
  833.        
  834.        Reset.........ATZ|
  835.        
  836.        Resets the modem back to it's factory settings (don't forget  the 
  837.        '|' carriage return symbol).
  838.        
  839.        Init..........AT S7=40 S0=0 V1 X1 |
  840.        
  841.        Initialises the modem for all equal baud rates.  The 'AT' is  the 
  842.        Hayes Attention command, 'S7=40' tells the modem to wait up to 40 
  843.        seconds for a connection, 'S0=0' turns off the auto-answer,  'V1' 
  844.       
  845.        makes  the modem reply with words rather than code numbers,  'X1' 
  846.        makes the modem return extended replies.  Use the highest  number 
  847.        your  modem allows with X to enable BUSY signal  detection  where 
  848.        implemented, '|' is the terminating carriage return.
  849.        
  850.        Init1275......AT S26=10 S7=45 S0=0 V1 X1 |
  851.        
  852.        This  is  the  same as 'Init' above apart from  the  'S26=10'  to 
  853.        change  to 12/75 split baud rate on the WS3000 modem.   You  must 
  854.        include any commands required to set 12/75 on your modem in  this 
  855.        string.   Please  note that if 'ATZ' returns your modem  to  non-
  856.        split  rate  mode, it will not be necessary to set  the  register 
  857.        back in the 'Init' string because an 'ATZ|' reset is issued prior 
  858.        to  the  Init and Init1275 strings - Otherwise you  may  need  an 
  859.        explicit  command  in 'Init' to return to normal  non-split  rate 
  860.        operation.
  861.        
  862.        Hang Up.......~~~+++~~~AT H0 |
  863.        
  864.        The string required to hang-up the modem.  The first '~~~' pauses 
  865.        for  1  1/2 seconds, '+++' forces the modem  into  command  mode, 
  866.        '~~~'  another  1  1/2 second delay,  'AT'  the  Hayes  attention 
  867.        command,  'H0'the hang-up command, '|' the  terminating  carriage 
  868.        return.
  869.        
  870.        Note: If your modem can be configured to drop the line and return 
  871.        to  command mode on detecting a drop in DTR then you  can  remove 
  872.        the  Hang-up  string  from the  'Modem  Control  String'  section 
  873.        completely (A common, though by no means universal, modem command 
  874.        to achieve this is '&D2').  The logic EaziLink uses is that if  a 
  875.        'Hang-up' string has been defined it sends the string to  hang-up 
  876.        the  modem  - If no hang-up string has been defined then  DTR  is 
  877.        lowered, for a short time, to hang-up the modem.
  878.        
  879.        Dial Prefix 1..AT <!> DP - Dial Prefix 6..AT <!> DP
  880.        
  881.        Six  alternative strings to be sent before the telephone  number.  
  882.        The  'AT'  is  the  Attention command, 'DP'  is  the  pulse  dial 
  883.        command.   Please  note  that '|' should NOT  be  added  to  this 
  884.        string.   All  six are defaulted to the  pulse  dialling  command 
  885.        initially  but  may  be  defined  to  send  any  command   string 
  886.        understood  by your particular modem.  One of these six  prefixes 
  887.        is specified for each dialling directory entry.  Modem based  MNP 
  888.        could,   for   example,  be  activated  or   deactivated,   where 
  889.        applicable,  via  these prefixes.   
  890.        
  891.        The  <!>  token  has a special purpose - If the <!>  field  in  a 
  892.        dialling  directory entry contains a modem control  command,  the 
  893.        <!>  field  in  the prefix is replaced  by  that  modem  command.  
  894.        Otherwise  the  <1>  in  the  prefix  is  simply  ignored.   This 
  895.        mechanism  can be used, for example, to control MNP or strap  the 
  896.        modem  to a particular speed etc.  This enables the modem  to  be 
  897.        set up specially for certain services if needed.  More about this 
  898.        advanced feature in the section covering the dialling directory.
  899.        
  900.        Dial Postfix..|
  901.        
  902.        The string to be sent to terminate the telephone number.  This is 
  903.        usually a carriage return.
  904.        
  905.        Command OK....OK
  906.        
  907.        The  string returned by the modem if a command is understood  and 
  908.        executed correctly.  This is usually 'OK'.
  909.        
  910.        Connect Msgs... Edit?
  911.        
  912.        This  option  gains  access to the section  where  modem  CONNECT 
  913.        messages must be entered.
  914.        
  915.           +----------------------- Connect Msgs ------------------+
  916.           | Connect 300  : CONNECT^M                               |
  917.           | Connect 1200 : CONNECT 1200                            |
  918.           | Connect 1275 : CONNECT 1275                            |
  919.           | Connect 7512 : CONNECT 7512                            |
  920.           | Connect 2400 : CONNECT 2400                            |
  921.           | Connect 4800 :                                         |
  922.           | Connect 7200 :                                         |
  923.           | Connect 9600 :                                         |
  924.           | Connect 12000:                                         |
  925.           | Connect 14400:                                         |
  926.           | Connect 19200:                                         |
  927.           | Connect 38400:                                         |
  928.           +--------------------------------------------------------+
  929.        
  930.        Connect 300....CONNECT^M
  931.        Connect 1200...CONNECT 1200 etc...
  932.        
  933.        These  are  the  strings returned by the modem when  it  makes  a 
  934.        successful  connection at each baud rate.  Each baud  rate  which 
  935.        your  modem  supports MUST be filled in - any which it  does  not 
  936.        support may be left blank.  If you are using a manual modem which 
  937.        returns  no such strings you MUST leave all fields  from  Connect 
  938.        300 to Connect 38400 empty - this enables EaziLink to go  on-line 
  939.        on  detection of a carrier signal rather than upon receipt  of  a 
  940.        valid  connect string.  If ANY of the connect strings  have  been 
  941.        defined,  EaziLink will only go on-line on receipt of a  matching 
  942.        connect string from the modem - the raising of DCD alone will NOT 
  943.        make  EaziLink go on-line.  In either case, it is important  that 
  944.        your modem raises DCD immediately a connection is established. 
  945.        
  946.        Note: '^M' or '|' may be used in a connect string to represent  a 
  947.        carriage  return.   This  is important where a  modem  returns  a 
  948.        simple 'CONNECT' string for a 300 baud connection.  The '^M' must 
  949.        be  added  to  prevent 'CONNECT' from  being  confused  with  the 
  950.        'CONNECT'  part  of the longer connect strings issued  for  other 
  951.        baud rates.  Please note that you must enter the correct 'Connect 
  952.        7512'  string if you want host mode to connect with 1275  callers 
  953.        with many modems.
  954.        
  955.       
  956.        Note:If  12000  bps  connects are expected  then  the  modem  and 
  957.        EaziLink must be configured to operate with a fixed DTE.
  958.        
  959.        No Connect....BUSY,NO CARRIER, NO ANSWER, NO DIALTONE
  960.        
  961.        The  strings  returned  by  the modem when it  fails  to  make  a 
  962.        successful connection.  Remember to set 'X' to it's highest legal 
  963.        value for your modem to make full use of these replies.  EaziLink 
  964.        will  abort  it's  count down and re-cycle  more  quickly  if  it 
  965.        receives  one  of  these replies from  the  modem.   The  default 
  966.        strings are typical Hayes replies but note that unfortunately the 
  967.        early  WS3000 does not send most of them.  Reply strings must  be 
  968.        separated by commas.
  969.        
  970.        Fix DTE Rate..
  971.        
  972.        Regardless  of  which baud rate is set in  a  service's  dialling 
  973.        directory, EaziLink will normally adjust the computer port to the 
  974.        rate returned by the modem connect string, before going  on-line. 
  975.        In  most  cases this will normally be the baud rate  set  in  the 
  976.        service's  directory  entry.  Some modems can be set to  fix  the 
  977.        computer port rate and handle speed buffering between the  actual 
  978.        line baud rate and the fixed port rate.  If you have such a modem 
  979.        and have included the command in the Init string to hold the  DTE 
  980.        (computer port) speed then you must set this configuration  field 
  981.        to  'Yes'  to  prevent EaziLink from resetting the  port  rate  - 
  982.        otherwise  leave  this  field set to 'No'.    Modern  high  speed 
  983.        modems  with  MNP  etc.  are best run  with  a  fixed  DTE  where 
  984.        possible.
  985.        
  986.        Dialling Delay 
  987.        
  988.        When dialling out, EaziLink opens a window displaying details  of 
  989.        the  remote  service  to be called. At the  right  hand  side  an 
  990.        elapsed  time  counter  is  decremented  every  second  whilst  a 
  991.        connection  is  attempted.   When the counter  reaches  zero  the 
  992.        attempt is terminated and a second counter is started.  When this 
  993.        counter reaches zero the number, or the next number in the queue, 
  994.        is  redialled.  This cycle is repeated until either a  connection 
  995.        is  made  or the user aborts the attempt with the ESC  key.   The 
  996.        dialling  attempt  time  for each service  is  specified  in  the 
  997.        dialling  directory entry - the delay between redials can be  set 
  998.        here  in  5  second  increments.  Use the [+]  and  [-]  keys  to 
  999.        increase  and decrease the respective counter start  values.  Use 
  1000.        the ESC key to exit when you have set the required value.  Please 
  1001.        note  that  the  counters can be increased  and  decreased  on  a 
  1002.        temporary  basis  from the dialling window 'on  the  fly'  whilst 
  1003.        dialling  out, by use of the [+] and [-] keys.  This can help  in 
  1004.        cases  where  the connection attempt time can be seen to  be  too 
  1005.        short  for  a  particular service - the user  can  intervene  and 
  1006.        increase the time manually.
  1007.        
  1008.        Flash-Back
  1009.        
  1010.        The number of 24 line pages to be set aside for the flash-back 
  1011.        buffer can be set here to any value between 1 and 17 pages.  Each 
  1012.        page uses about 4K of memory, so if you are tight for memory keep 
  1013.        this  value  small or use the SWapping feature  described  later.
  1014.        The full 17 pages use 64K.  Use ESC to exit when you have set the 
  1015.        required value.
  1016.        
  1017.        
  1018.        File Paths
  1019.        
  1020.        EaziLink  enables  the user to, optionally, specify  paths  where 
  1021.        certain  file  types are to be found or stored.  This  enables  a 
  1022.        well organised working environment to be created:
  1023.        
  1024.        +-------------------------| File Paths |------------------------+
  1025.        | Upload Path   : C:\EAZILINK\UPLOAD                            |
  1026.        | Download Path : C:\EAZILINK\DOWNLOAD                          |
  1027.        | Message Path  : C:\EAZILINK\MESSAGES                          |
  1028.        | Capture Path  : C:\EAZILINK\CAPTURE                           |
  1029.        | Image Path    : C:\EAZILINK\IMAGES                            |
  1030.        | Macro Path    : C:\EAZILINK\MACROS                            |
  1031.        | Script Path   : C:\EAZILINK\SCRIPTS                           |
  1032.        | Protocol Path : C:\EAZILINK\XFER                              |
  1033.        +---------------------------------------------------------------+  
  1034.        
  1035.        Upload Path 
  1036.        
  1037.        This  is  the path where EaziLink expects files which are  to  be 
  1038.        uploaded  to  be found, if no file path is included in  the  file 
  1039.        name  which  the  user is prompted to  enter  during  the  upload 
  1040.        operation.  The default is the EaziLink main directory.
  1041.        
  1042.        Download Path
  1043.        
  1044.        This is the path where files downloaded from remote services will 
  1045.        be stored.  The default is the EaziLink main directory.
  1046.        
  1047.        Message Path
  1048.        
  1049.        This is where the messages which are to be sent, using the Alt  M 
  1050.        command,  should  be stored.  The default is  the  EaziLink  main 
  1051.        directory.
  1052.        
  1053.        Capture Path
  1054.        
  1055.        This  is the default path for '.CAP' capture files.  The  default 
  1056.        is the EaziLink main directory.
  1057.        
  1058.        Image Path
  1059.        
  1060.        This is the default path for '.I40' and '.I80' image files.   The 
  1061.        default is the EaziLink main directory.
  1062.        
  1063.       
  1064.        Macro Path
  1065.        
  1066.        This  is the default path for '.KEY' keyboard macro  files.   The 
  1067.        default is the EaziLink main directory.
  1068.        
  1069.        Script Path 
  1070.        
  1071.        Set  this path to the directory where you will store  the  log-on 
  1072.        scripts.  The default is the EaziLink main directory.     
  1073.        
  1074.        Protocol Path
  1075.        
  1076.        This  is  where  EaziLink looks for the  external  file  transfer 
  1077.        protocol  drivers.   This  path may be overridden  by  full  path 
  1078.        name  entries  in  the  EAZILINK.PRO  protocol  definition  file, 
  1079.        but  there  is  no real advantage in doing so.   The  default  is 
  1080.        the EaziLink main directory.
  1081.        
  1082.        
  1083.        Utilities
  1084.        
  1085.        External  programs may be installed for use from within  EaziLink 
  1086.        by filling in the following fields:
  1087.        
  1088.        Editor Path
  1089.        
  1090.        EaziLink  allows  you  to name an editor of your  choice,  to  be 
  1091.        invoked  from  the  main menu and also using the  Alt  E  command 
  1092.        whilst on-line.  Enter the full path and name of the editor here. 
  1093.        Note: You MUST include the file name extension.
  1094.        
  1095.        Filer Path
  1096.        
  1097.        EaziLink  allows  you to name a file management program  of  your 
  1098.        choice,  to be invoked from the Utilities menu and also by  using 
  1099.        the  Alt U command whilst on-line.  Enter the full path and  name 
  1100.        of  the  program  here.  Note: You MUST  include  the  file  name 
  1101.        extension.
  1102.        
  1103.        Lister Path
  1104.        
  1105.        The  file listing program of your choice may be  specified  here.  
  1106.        The  program can be invoked from the Utilities menu and  also  by 
  1107.        using the Alt U command whilst on-line.  Enter the full path  and 
  1108.        name  of the program here. Note: You MUST include the  file  name 
  1109.        extension.
  1110.        
  1111.        Note:  In  the case of the Editor, Filer and Lister  the  '%file' 
  1112.        system  variable and the trailing semi-colon (;)  are  supported.  
  1113.        If  the  '%file' variable is appended to the  full  program  path 
  1114.        name,  separated  from it by a space character, a  file  name  is 
  1115.        requested  from  the  user to be passed as  a  parameter  to  the 
  1116.        external  program.  If [ENTER] is pressed without any input,  the 
  1117.        external program is invoked and no filename parameter is  passed. 
  1118.        If [ESC] is pressed then a file window is opened for the user  to 
  1119.       
  1120.        interactively  select a file.  If [ESC] is pressed at this  stage 
  1121.        then  the command is aborted.  If semi-colon is appended  to  the 
  1122.        full  program path name including any optional '%file'  variable, 
  1123.        This  time with no separating space character, then the  external 
  1124.        program will pause on termination until a key is pressed - rather 
  1125.        like the Utility menu's Command option.
  1126.        
  1127.        Example:   C:\EAZIEDIT.EXE %FILE
  1128.        
  1129.        Here a file name would be prompted for and passed to the external 
  1130.        editor, EAZIEDIT, when invoked.
  1131.        
  1132.        Entry Format
  1133.        
  1134.        This  is  the  default dialling directory format  which  will  be 
  1135.        offered  when  making  new directory entries.   It  is  also  the 
  1136.        default used when dialling out in terminal mode accessed from the 
  1137.        main  menu.   If you are not sure whether a setting needs  to  be 
  1138.        changed - leave it at the default setting initially and try it.
  1139.        
  1140.           +--------------| Default Directory Format |---------------+
  1141.           | Prefix #   : 1                                          |
  1142.           | Baud Rate  : 1200                                       |
  1143.           | Data Bits  : 8                                          |
  1144.           | Parity     : None                                       |
  1145.           | Stop Bits  : 1                                          |
  1146.           | Handshake  : Xon/Xoff                                   |
  1147.           | Terminal   : ANSI-BBS                                   |
  1148.           | Wrap On    : Yes                                        |
  1149.           | Protocol   : X                                          |
  1150.           | Strip Bit 7: No                                         |
  1151.           | Local Echo : No                                         |
  1152.           | Add LF     : No                                         |
  1153.           | Dest. BS   : Yes                                        |
  1154.           | Backspace  : BS Code                                    |
  1155.           | Dial Time  : 50                                         |
  1156.           | Ascii CD   : 7                                          |
  1157.           | Ascii LD   : 100                                        |
  1158.           +---------------------------------------------------------+
  1159.            
  1160.           Prefix #    - The dialling prefix to use (1..3)     
  1161.           Baud Rate   - Communication baud rate for the remote service.
  1162.           Data Bits   - Number of data bits.
  1163.           Parity      - Parity required - NONE, EVEN, ODD.
  1164.           Stop Bits   - Number of stop bits required.
  1165.           Handshake   - None, Rts/Cts (Hardware), Xon/Xoff (Software).
  1166.           Terminal    - Terminal type required by remote service.
  1167.           Wrap On     - Determines if line-end text wrap is allowed.
  1168.           Protocol    - Default file transfer protocol to be used.
  1169.           Strip Bit 7 - Strip the top bit from incoming data.
  1170.           Local Echo  - Echo your own keystrokes locally YES/NO.
  1171.           Add LF      - Add line feeds to incoming returns YES/NO.
  1172.           Dest. BS    - Make Backspace characters destructive (delete).
  1173.           Backspace   - Convert Backspace codes to Delete codes YES/NO.
  1174.           Dial Time   - Maximum time for which to attempt a connection .
  1175.       
  1176.           Ascii CD    - Delay between characters when sending messages. 
  1177.           Ascii LD    - Delay between lines when sending messages.
  1178.        
  1179.        
  1180.        Host Mode
  1181.        
  1182.        The host mode environment and mode of operation is controlled  by 
  1183.        the following fields:
  1184.        
  1185.         +------------------------| Host Mode |------------------------+
  1186.         | Auto Answer        : ~~~+++~~~AT X1 V1 S0=1 S24=5 ^M        |
  1187.         | Host Main Path     : C:\EAZILINK\HOSTMAIN                   |
  1188.         | Host Message Path  : C:\EAZILINK\HOSTMESS                   |
  1189.         | Host Download Path : C:\EAZILINK\HOSTDOWN                   |
  1190.         | Host Upload Path   : C:\EAZILINK\HOSTUP                     |
  1191.         | Sysop's Name       : SYSOP NAME                             |
  1192.         | Sysop Password     : SYSOP PASS                             |
  1193.         | Log Host Calls     : Yes                                    |
  1194.         | Default Chat ON    : Yes                                    |
  1195.         | Open System        : Yes                                    |
  1196.         | Speed Scanning     : Yes                                    |
  1197.         | Baud Rate          : 1200                                   |
  1198.         | Fix DTE Rate       : No                                     |
  1199.         +-------------------------------------------------------------+
  1200.        
  1201.        Auto Answer.....~~~+++~~~AT X1 V1 S0=1 S23=1 S24=5 |
  1202.        
  1203.        This  is  the modem control string required to set the  modem  in 
  1204.        auto-answer  mode.  The string should also ensure that baud  rate 
  1205.        scanning is activated, if available.  The various elements in the 
  1206.        default  string  above, have the  following  effect.  '~~~+++~~~' 
  1207.        forces the modem into command mode, 'AT' Hayes attention command, 
  1208.        'X1' use extended result calls - enables callers baud rate to  be 
  1209.        returned  in the form 'CONNECT 1200' etc.,'S0=1' answer  incoming 
  1210.        calls  after  1 ring, 'S24=5' WS3000 modem specific -  scans  the 
  1211.        baud rates in 5 second steps to determine the callers baud  rate. 
  1212.        If  your  modem  is not reasonably Hayes compatible  you  may  be 
  1213.        unable to use the Host mode.
  1214.        
  1215.        Host Main Path
  1216.        
  1217.        This  is the main Host path where host mode system  files,  logos 
  1218.        etc. are stored.
  1219.        
  1220.        Host Message Path
  1221.        
  1222.        This is where the files containing the text of host mode messages 
  1223.        are stored.
  1224.        
  1225.        Host Download Path
  1226.        
  1227.        This  is  where  you  should put files which  you  wish  to  make 
  1228.        available to callers if you do not intend to make use of multiple 
  1229.        download areas.
  1230.        
  1231.        Host Upload Path
  1232.        
  1233.        This is where files uploaded by callers will be stored.
  1234.        
  1235.        Sysop's Name
  1236.        
  1237.        The  Sysop must enter his/her name here.  First and  last  name 
  1238.        only - exactly as you will enter your name when logging onto host 
  1239.        mode.  Any messages from users addressed to the 'Sysop' and  log-
  1240.        off messages will then be directed to you.
  1241.         
  1242.        Sysop Password
  1243.        
  1244.        This  is a special password which gives full access to  the  host 
  1245.        mode and also gives the remote caller access to the DOS shell  on 
  1246.        your machine - BE VERY CAREFUL who you give this password to.
  1247.        
  1248.        Log Host Calls
  1249.        
  1250.        This  setting determines whether incoming calls are to be  logged 
  1251.        in  HOST.LOG.  HOST.LOG is created automatically in the  EaziLink 
  1252.        main directory. (Note: Not in the host mode main directory).  The 
  1253.        form of the log entry is the same as for the 'Usage Log'  feature 
  1254.        described  later, but the name of the caller takes the  place  of 
  1255.        the name of the remote host.  In addition a '-' sign is  appended 
  1256.        to the 'Elapsed Time' display if an abnormal log-off occurs (e.g. 
  1257.        line  is dropped), whilst a '+' sign indicates a  normal  log-off 
  1258.        via 'Goodbye'.
  1259.        
  1260.        Open System
  1261.        
  1262.        If  this is set to 'YES' then any caller will be given access  to 
  1263.        the  host  mode  provided  they  complete  the  log-on   sequence 
  1264.        correctly.   Otherwise  only  callers previously  logged  by  the 
  1265.        system operator (Sysop) will be given access.
  1266.        
  1267.        Speed Scanning
  1268.        
  1269.        If your modem supports speed scanning in auto-answer mode and you 
  1270.        have initialised your modem, in the 'Auto Answer' string, to  use 
  1271.        it  then this should be set to 'YES'.  If callers are to  contact 
  1272.        the host mode at a single set speed then set this option to  'NO' 
  1273.        and  set  the selected baud rate in the  field  described  below. 
  1274.        EaziLink  will  then assume a connection is  established  when  a 
  1275.        carrier  signal  is  detected  rather  than  upon  receipt  of  a 
  1276.        connect string from the modem.
  1277.        
  1278.        Baud Rate
  1279.        
  1280.        This  is the baud rate to which the comms port will be  set  each 
  1281.        time  the  host  mode resets itself ready  for  a  caller.   This 
  1282.        setting  may  be relevant whether you are are speed  scanning  or 
  1283.        not.  If you are speed scanning this will usually need to be  the 
  1284.        highest  baud rate which your modem supports.  Check  your  modem 
  1285.        manual to see which baud rate to set here.
  1286.       
  1287.        Fix DTE Rate
  1288.        
  1289.        This  option enables modems which are capable of fixing  the  DTE 
  1290.        baud rate and speed buffering between line rate and DTE rate,  to 
  1291.        be  used in that way.  See the same option in the 'Modem  Control 
  1292.        String' section for more details.
  1293.        
  1294.        
  1295.        Colour
  1296.        
  1297.        Set the general display colour, window contents colour and window 
  1298.        frame  colour  by  selection from the  displayed  foreground  and 
  1299.        background  colours.   Each are set in turn as indicated  by  the 
  1300.        prompt above the sample window.  The menu border style can also 
  1301.        be changed using the 'Y' and 'Z' options.  
  1302.        
  1303.        
  1304.        Alarm
  1305.        
  1306.        The  rather  strident alarm which is sounded when  both  outgoing 
  1307.        and  incoming  calls  are connected can be  disables  using  this 
  1308.        option.  The normal bell which accompanies error messages etc. is 
  1309.        not affected.
  1310.        
  1311.        
  1312.        Log calls
  1313.        
  1314.        A usage log file 'EAZILINK.LOG' can be turned on or off via  this 
  1315.        option.   If turned on, the log file will record details of  each 
  1316.        remote  service  connected  to during the course  of  a  session. 
  1317.        Information  includes the date, the time when the connection  was 
  1318.        made,  the  name of the remote service and the  duration  of  the 
  1319.        call.  If the configuration is saved with this option turned  on, 
  1320.        then  EaziLink  will automatically open the log at  start-up  and 
  1321.        close it at program termination. If EAZILINK.LOG already  exists, 
  1322.        information is appended to previous log entries.    
  1323.        
  1324.        Example log entries:
  1325.        
  1326.        * Log Opened: Tuesday June 20,  1989 
  1327.           1:49  p.m.  | The Gas Lamp                  | 2400  BAUD 
  1328.                       | Download                      | [E] TEST.ZIP  
  1329.                       | Download                      | [Z]  <UNKNOWN>  
  1330.                       | Upload                        | [Z] ELINK30.ZIP 
  1331.                       | Message                       | CLARKE.MSG 
  1332.                       | Elapsed  Time                 | 00:23:06  
  1333.        * Log  Closed  
  1334.        
  1335.        Note:  The second download was made using Zmodem - the file  name 
  1336.        is sent in the header so EaziLink does not know the name.  If you 
  1337.        wish to ensure that a name is always registered you could use the 
  1338.        %file   variable  in  the  protocol's  download   definition   in 
  1339.        EAZILINK.PRO  even  though it is not needed - but  this  is  less 
  1340.        convenient in use.  Please note also that messages sent are  also 
  1341.        registered in the log. 
  1342.       
  1343.        Mouse support
  1344.        
  1345.        Simple mouse control can be activated via this option.  The mouse 
  1346.        simulates the use of the cursor keys and the RETURN and ESC keys. 
  1347.        Moving  the  mouse forwards, backwards,left  and  right  simulate 
  1348.        pressing  the cursor up, down. left and right keys  respectively. 
  1349.        The mouse left and right buttons simulate the RETURN and ESC keys 
  1350.        respectively. (Default: off)
  1351.        
  1352.        
  1353.        Swapping
  1354.        
  1355.        Since  the Flash-back buffer can be as large as 64K if all  pages 
  1356.        are  defined, the swapping option has been introduced  to  enable 
  1357.        the Flash-back buffer contents to be swapped to disk temporarily, 
  1358.        freeing  up this memory, automatically, whenever a  shell-out  to 
  1359.        DOS   takes  place.   The  phrase  shell-out   includes   running 
  1360.        protocols, the external editor, utilities etc.
  1361.        
  1362.        If  turned  on, the swapping takes place  automatically  whenever 
  1363.        host  mode  is entered and no further swapping within  host  mode 
  1364.        itself is required.
  1365.        
  1366.        The  swapped  out buffer is read back in and restored  after  the 
  1367.        shell-out.  (Default: off)
  1368.        
  1369.        
  1370.        Save 
  1371.        
  1372.        Saves the configuration to the .CNF file.  If this option is  not 
  1373.        used then changes to the configuration apply only to the  current 
  1374.        session and will be lost when the program is terminated.  You may 
  1375.        wish the settings to be temporary if you are working in  terminal 
  1376.        mode - in that case don't save.
  1377.        
  1378.        Quit
  1379.        
  1380.        Return  to the main menu.  Note: The configuration is  NOT  saved 
  1381.        unless the Save Set-up option is executed by the user.
  1382.        
  1383.                             THE DIALLING DIRECTORY
  1384.        
  1385.        
  1386.        Each  remote service you wish to contact regularly should have  a 
  1387.        directory  entry made for it.  When the dialling directory is  on 
  1388.        display a highlighted bar at the foot of the screen can be  moved 
  1389.        horizontally   to  select  the  option  required.   Similarly   a 
  1390.        highlighted  remote  service pointer can be moved  vertically  to 
  1391.        pick out the directory entry upon which the option is to operate. 
  1392.        The  remote  service pointer can be moved to just one  row  below 
  1393.        current  entries to enable new entries to be added to the end  of 
  1394.        the  existing ones by use of the Edit option.  Any  one  dialling 
  1395.        directory has a capacity of 99 entries.
  1396.        
  1397.        +---------------------| Dialling Directory |--------------------+
  1398.        |     Name Of Service       Phone Number  Port         Script   |
  1399.        +---+---------------------+-------------+------------+----------+
  1400.        | 1 | SandSoft Support BBS| 0756 791298 | 1200-8-N-1 | EAZIHOST |
  1401.        | 2 | The Gas Lamp        | 0706 358331 | 1200-8-N-1 | REMOTE   |
  1402.        | 3 | Forth View BBS      | 031 660 6680| 1200-8-N-1 | EAZIHOST |
  1403.        | 4 | Prestel (Harrogate) | 0423 760111 | 1275-8-N-1 | PRESTEL  |
  1404.        | 5 |                     |             |            |          |
  1405.        | 6 |                     |             |            |          |
  1406.        | 7 |                     |             |            |          |
  1407.        | 8 |                     |             |            |          |
  1408.        | 9 |                     |             |            |          |
  1409.        |10 |                     |             |            |          |
  1410.        |11 |                     |             |            |          |
  1411.        |12 |                     |             |            |          |
  1412.        |13 |                     |             |            |          |
  1413.        |14 |                     |             |            |          |
  1414.        |15 |                     |             |            |          |
  1415.        +---+---------------------+-------------+------------+----------+
  1416.        Dial Queue Edit LD-Calls Insert Kill Copy Move  New Get Page Zero
  1417.        
  1418.        Dial the selected entry.
  1419.        
  1420.        If the Page option is pressed, another set of service details are 
  1421.        displayed thus:
  1422.        
  1423.        +---------------------| Dialling Directory |--------------------+
  1424.        |     Name Of Service      Calls Hours   Last Date    Last Time |
  1425.        +---+---------------------+-----+-------+------------+----------+
  1426.        | 1 | SandSoft Support BBS|  56 | 16:45 |  24/01/92  | 8.04 p.m.|
  1427.        | 2 | The Gas Lamp        |  13 |  8:15 |  15/01/92  | 9.12 p.m.|
  1428.        
  1429.        etc...
  1430.        
  1431.        Where for each service:
  1432.        
  1433.        Calls      Total number of calls made.
  1434.        Hours      Total hours:mins on-line.
  1435.        Last Date  Last date called.
  1436.        Last Time  Last time called.
  1437.        
  1438.       
  1439.        Note: The Calls and Hours field can be cleared by using the  Zero 
  1440.        option described later.
  1441.        
  1442.        Dial
  1443.        
  1444.        The selected entry is dialled.  A dialling window is opened which 
  1445.        displays  information  about the remote service  currently  being 
  1446.        called  including the status of the current attempt and also  the 
  1447.        previous  attempt.  The queue field consists of one entry only  - 
  1448.        the  entry  selected from the dialling directory.   The  dialling 
  1449.        attempt  counter  and the pause between attempts counter  can  be 
  1450.        increased or decreased temporarily by use of the '+' and '-' keys 
  1451.        respectively.  Beneath the dialling window a modem monitor window 
  1452.        is opened which displays the response of the modem to the control 
  1453.        strings  being  sent by EaziLink.  This enables a user  to  check 
  1454.        that the modem is indeed receiving the intended strings properly. 
  1455.        If a connection is made the connect string returned by the  modem 
  1456.        is also echoed in the monitor window along with the baud rate  at 
  1457.        which  the connection has been made - where  applicable.   Whilst 
  1458.        dialling  the  SPACE  key forces a recycle, and  ESC  aborts  the 
  1459.        dialling and returns to the dialling directory. 
  1460.        
  1461.        It  is possible to change the baud rate from the dialling  window 
  1462.        to  speed-up re-dial on those odd occasions when the line is  too 
  1463.        weak  to  support a connection at your  dialling  directory  baud 
  1464.        rate.   This baud rate change is temporary and is only in  effect 
  1465.        whilst  the dialling window is open.  To reset the baud rate  use 
  1466.        the 'B' key.  The baud rate can be changed whilst dialling out or 
  1467.        during  the between attempts pause. If a queue is  in  operation, 
  1468.        use  of the 'B' key temporarily suspends the queue - forcing  the 
  1469.        current  number  to  be  called  again  at  the  new  baud  rate. 
  1470.        Otherwise the queue functions as usual - any temporary baud  rate 
  1471.        previously  set for a preceding entry is ignored and the  current 
  1472.        entry's  dialling  directory baud rate is honoured.  The  connect 
  1473.        alarm  can also be toggled whilst the dialling attempt  is  being 
  1474.        made.
  1475.        
  1476.        Queue
  1477.        
  1478.        A  series  of up to 10 directory entries may be  entered  into  a 
  1479.        queue  for dialling.  Entries are added to the queue  by  putting 
  1480.        their  index,  i.e.  position in the  directory,  in  the  queue. 
  1481.        Entries in the queue must be separated by commas or spaces thus:
  1482.        
  1483.        7,12,9,22
  1484.        
  1485.        Please  note that whilst creating the queue, the  directory  list 
  1486.        can  be  scrolled as usual by use of the UP,  DOWN,  PGUP,  PGDN, 
  1487.        HOME, END keys, to assist in the selection process.
  1488.        
  1489.        The  dialling  window  is opened  and  information  displayed  as 
  1490.        described  in  the  'Dial' option.  Each entry in  the  queue  is 
  1491.        dialled in turn until a connection is made with one of them.   On 
  1492.        returning   from   the  remote  service  the  entry   which   was 
  1493.        successfully  contacted  is deleted from the queue and  the  next 
  1494.       
  1495.        member of the queue is dialled - etc.  This process will continue 
  1496.        until  either  all entries in the queue  have  been  successfully 
  1497.        contacted  or  ESC is pressed to return control to  the  dialling 
  1498.        directory.  During dialling out the remaining entries still to be 
  1499.        contacted  are  displayed alongside the  'Queue'  prompt.   Queue 
  1500.        entries  which have not yet been contacted are retained  even  if 
  1501.        the  dialling directory is exited, thus the queue can be  resumed 
  1502.        later.
  1503.        
  1504.        Edit
  1505.        
  1506.        The selected entry can be edited or if it is the blank end  entry 
  1507.        a new entry can be defined by entering the following fields:
  1508.        
  1509.             Name     - The name of the remote service.
  1510.             Number   - The telephone number to be dialled.
  1511.             Password - The password to be used with the remote service.
  1512.             Script   - The auto-log-on script to be run on connection.
  1513.             Macro    - A macro file to be loaded upon connection.
  1514.             <!>      - Optional extra modem commands.
  1515.        
  1516.        The  <!> field may optionally contain extra modem commands  which 
  1517.        you want used for that particular service.  Any commands here are 
  1518.        inserted  in  the relevant dialling prefix in place  of  the  <!> 
  1519.        token  embedded in the prefix string itself.  This could be  used 
  1520.        for  setting up or disabling MNP or fixing the rate at which  you 
  1521.        wish your modem to connect with the remote host.  If you use this 
  1522.        mechanism,  be sure to include modem commands in your 'Reset'  or 
  1523.        'Init'  strings  to return your modem to any  default  state  you 
  1524.        prefer so that changes made via <!> are in effect cancelled  when 
  1525.        the next service is called.
  1526.        
  1527.        (Note: Any macro file which was loaded prior to going on-line  is 
  1528.        re-loaded when the connection terminates.)
  1529.        
  1530.        The  remaining  fields  are as  described  in  the  configuration 
  1531.        section under 'Default Entry'.  The same quick editing system  is 
  1532.        employed  as that used during configuration - press ESC  to  exit 
  1533.        the edit mode.
  1534.        
  1535.        LD-Calls
  1536.        
  1537.        Up  to  10  Long  distance  (or  International)  numbers  may  be 
  1538.        specified,  numbered  0..9.  Long distance numbers  can  be  very 
  1539.        long, requiring country codes, area codes and delay characters as 
  1540.        well  as the basic phone number.  EaziLink allows up to  10  such 
  1541.        numbers  to  be defined, for each dialling directory,  which  are 
  1542.        then included in the dialling directory 'Number' field as #0..#9. 
  1543.        Thus  if  the  LD-Call  string '#5' was  defined  to  contact  an 
  1544.        American BBS then the string '#5' would be entered in the board's 
  1545.        dialling directory entry instead of the phone number.  Note  that 
  1546.        LD-Call  strings  are saved automatically whenever  the  dialling 
  1547.        directory with which they are associated is saved. 
  1548.        
  1549.        Insert
  1550.        
  1551.        Just  like  Edit but the newly defined entry is inserted  at  the 
  1552.        selected position.
  1553.        
  1554.        Kill
  1555.        
  1556.        The selected entry is deleted and the gap created closed up.
  1557.        
  1558.        Copy
  1559.        
  1560.        The  selected  entry is copied to another  position  leaving  the 
  1561.        original as it was.  Move the remote service pointer to the entry 
  1562.        to  be  copied and press [C].  When prompted to do so,  move  the 
  1563.        remote service pointer to the second location and press ENTER.
  1564.        
  1565.        Move
  1566.        
  1567.        As Copy but the original entry is deleted.  The directory can  be 
  1568.        sorted into any order you like using this option.
  1569.        
  1570.        New
  1571.        
  1572.        This  option  enables  a new, blank,  dialling  directory  to  be 
  1573.        created  on  disk,  ready for loading via the  Get  option.   Any 
  1574.        number of alternative dialling directories can be created in this 
  1575.        way.
  1576.        
  1577.        Get
  1578.        
  1579.        The  Get  option allows the loading of  an  alternative  dialling 
  1580.        directory  and  it's associated '.LDC' list if  applicable.   The 
  1581.        dialling  directory  currently in use is updated,  if  necessary, 
  1582.        along with it's associated '.LDC' file, before the newly selected 
  1583.        directory is loaded.
  1584.        
  1585.        Page
  1586.        
  1587.        Toggles between the two alternative service detail displays as 
  1588.        illustrated above.
  1589.        
  1590.        Zero
  1591.        
  1592.        Clears the 'Calls' and 'Hours' fields in a services directory 
  1593.        entry.
  1594.        
  1595.        Note:  Whilst the 'Dialling Directory' window is on display,  you 
  1596.        may  select  a service to call simply by typing it's  number  and 
  1597.        pressing  RETURN.  This feature works by assuming that any  digit 
  1598.        typed  should  'jump-start' the Queue facility and  start  a  new 
  1599.        queue with that digit.  Since this feature uses the Queue you may 
  1600.        enter  one  number  or several separated  by  spaces  or  commas.  
  1601.        Pressing RETURN starts dialling off.
  1602.        
  1603.        For  example, to dial entry number 12 in your dialling  directory 
  1604.       
  1605.        you may type the digits '12' followed by the RETURN key.
  1606.        
  1607.        Note: In earlier versions of EaziLink, dialling cancellation (Via 
  1608.        ESC)  took a long time with some modems.  This was  because  they 
  1609.        did not return 'OK' on receiving the cancelling string - Only the 
  1610.        'Command  OK' field entry was accepted as a positive response  to 
  1611.        attempts  to cancel dial-out.  Those modems which did  not  issue 
  1612.        this response would run on to the full time-out of 15 seconds  or 
  1613.        so.   Any of the strings in the 'No Connect' field are  now  also 
  1614.        accepted  as proof of the modem's response to dial  cancellation. 
  1615.        In the case of the Dowty Quattro SB2422, for example, the  string 
  1616.        '(Aborted!)'  should be added to the 'No Connect'  strings  since 
  1617.        this is what the Quattro returns on dialling cancellation.  Other 
  1618.        modems may require other strings to be added.
  1619.        
  1620.                                 ON-LINE OPTIONS
  1621.        
  1622.        
  1623.        Whilst on-line a number of options, invoked by PGUP, PGDN and Alt 
  1624.        key  combinations,  are  available.   Many  are  common  to   the 
  1625.        scrolling  BBS  terminals (ANSI-BBS and TELETYPE) and  the  frame 
  1626.        based services (VIEWDATA).  Where an option is not applicable  to 
  1627.        a  particular  terminal  this is indicated.   When  the  Viewdata 
  1628.        terminal is in operation all on-line options are displayed on the 
  1629.        right  hand  side of the screen.  In the case of  the  other  BBS 
  1630.        terminals the on-line options are displayed automatically if  the 
  1631.        Alt key is held down for more than a second or so.
  1632.        
  1633.        Note:  To see the full list of on-line options, at any time,  you 
  1634.        should press Alt O.
  1635.        
  1636.        PGUP
  1637.        
  1638.        The  page  up key initiates an Upload file transfer.  A  list  of 
  1639.        file  transfer  protocols is presented to select  from.   When  a 
  1640.        protocol has been selected a window opens prompting for the  name 
  1641.        of  the file/s to be uploaded - enter the file name/s  and  press 
  1642.        ENTER.  Now the external file transfer driver takes over and  the 
  1643.        file  transfer begins.  Upon completion an alarm will  sound  and 
  1644.        control  returns to EaziLink.  EaziLink has a file name  guessing 
  1645.        feature which offers the file name which it thinks you will enter 
  1646.        when  you  are prompted for the file name.  This feature  is  not 
  1647.        available  in  Viewdata mode.  If the guess is wrong  use  ^Y  to 
  1648.        clear the input line and enter the correct name.
  1649.        
  1650.        PGDN
  1651.        
  1652.        The page down key initiates a Download file transfer.  This works 
  1653.        as  the  Upload operation above but, of course,  downloads  files 
  1654.        from the remote service.  Some protocols, like Zmodem and Ymodem-
  1655.        batch,  do  not require a file name to be entered  at  the  local 
  1656.        terminal  so  the  file  name window may  not  be  displayed  for 
  1657.        downloads.  This is controlled by the inclusion or absence of the 
  1658.        '%file'  system  variable  in the protocol command  line  in  the 
  1659.        EAZILINK.PRO file. (see the 'FILE TRANSFER PROTOCOLS' section).  
  1660.        The file name guessing feature described in PGUP above, applies 
  1661.        here also.
  1662.        
  1663.        Alt C
  1664.        
  1665.        Allows  a  text capture file to be opened, closed,  suspended  or 
  1666.        resumed.   Text  from the remote host which is displayed  on  the 
  1667.        screen is stored in a named disk file.  The default capture  file 
  1668.        is EAZILINK.CAP in the 'Capture Path' directory. The capture file 
  1669.        should normally be given the extension '.CAP' or no extension  in 
  1670.        which case EaziLink adds the '.CAP' extension to the name.  It is 
  1671.        possible to specify other extensions but it should be noted  that 
  1672.        such  files  will  not be listed in  the  file  selection  window 
  1673.        accessed  via the ESC key.  If the file already exists,  text  is 
  1674.        appended to it - otherwise a new file is created.  With scrolling 
  1675.       
  1676.        services this facility can only handle text received in a  simple 
  1677.        teletype  fashion  and cannot accurately  represent  ANSI  screen 
  1678.        control sequences, deletions or editing carried out 'live' by the 
  1679.        user.  With Viewdata services whole frames are captured in one go 
  1680.        IMMEDIATELY BEFORE the frame is CLEARED from the screen.   Please 
  1681.        note  that  in  Viewdata mode text only  is  captured  -  graphic 
  1682.        characters and colours are ignored.
  1683.        
  1684.        On  pressing Alt C If a capture file is not currently  open  then 
  1685.        you  are  prompted to enter a file name to receive  the  text  or 
  1686.        accept  the default file name offered. If a file name is  entered 
  1687.        without  a path element then the 'Capture Path' is assumed.   The 
  1688.        default  file name is EAZILINK.CAP.
  1689.        
  1690.        If  the named capture file already exists, you are asked  if  you 
  1691.        want  to  append  newly captured text to the old file  -  If  you 
  1692.        answer 'N'o, the old capture file is cleared first.
  1693.        
  1694.        If a capture file is already open then you are offered the option 
  1695.        of temporarily suspending capture (Suspend), closing the  capture 
  1696.        file (Close) or exiting without change (Exit - also ESC).
  1697.        
  1698.        If  a capture file is open but suspended then the Suspend  option 
  1699.        above is replaced by a Resume option to resume text capture. 
  1700.        
  1701.        When the capture facility is in operation an asterisk appears  at 
  1702.        the   bottom  right  hand  extremity  of  the  status  line,   as 
  1703.        confirmation.   Capture  files are plain ASCII files and  can  be 
  1704.        viewed  in  any  ASCII text editor  which  accepts  IBM  graphics 
  1705.        characters. (our own EaziEdit is ideal)  
  1706.        
  1707.        Note: Capture files are ALWAYS closed on connection termination.
  1708.        
  1709.        
  1710.        Alt D
  1711.        
  1712.        Invoke a DOS shell - as in the main menu equivalent.  Please note 
  1713.        that any capture file open at the time is closed temporarily when 
  1714.        entering the DOS shell and re-opened on return.  This allows  the 
  1715.        capture  file  to be manipulated within the  shell,  if  desired, 
  1716.        without the danger of corruption.
  1717.        
  1718.        Alt E
  1719.        
  1720.        Invokes  the editor specified in the configuration section.   The 
  1721.        same  capture  file  security feature is used as  in  the  Alt  D 
  1722.        option.
  1723.        
  1724.        Alt F
  1725.        
  1726.        Displays  the Flash-back buffer for viewing of scrolling text  or 
  1727.        Viewdata frames displayed earlier in a session.
  1728.        
  1729.        
  1730.        Alt G
  1731.        
  1732.        This option (Go script) invokes and runs a script who's name  can 
  1733.        either  be entered in the normal file name prompt box or, if  ESC 
  1734.        is pressed, may be interactively selected from a file pick window 
  1735.        which defaults to looking in the 'Scrip Path' directory for files 
  1736.        with the extension .SCR.
  1737.        
  1738.        Any  attempt  to run a script this way whilst another  script  is 
  1739.        already running, is met with an error report to that effect.
  1740.        
  1741.        Alt H
  1742.        
  1743.        Hangs up the modem by sending the hang-up string specified in the 
  1744.        configuration section OR by lowering DTR.  Only use to disconnect 
  1745.        from a remote service if all normal exit attempts fail. 
  1746.        
  1747.        Alt I
  1748.        
  1749.        Saves  a screen image to the disk file selected using the  Alt  R 
  1750.        option.   Images saved in this way are in full colour and can  be 
  1751.        viewed off-line using the View option on the main menu.
  1752.        
  1753.        Alt K
  1754.        
  1755.        This  option enables the user to control all the  keyboard  macro 
  1756.        options  described in the main menu section under  'Key',  whilst 
  1757.        on-line.
  1758.        
  1759.        Alt L
  1760.        
  1761.        This  option  enables most of the link settings like  baud  rate, 
  1762.        parity,  stop  bits, local echo, line-wrap etc.,  to  be  changed 
  1763.        whilst  actually  online or in terminal mode.   Changes  made  in 
  1764.        terminal mode actually change the default 'Entry Format' normally 
  1765.        accessed via the configuration section.  Changes made via 'Alt L' 
  1766.        are  however  only temporary unless saved via  the  configuration 
  1767.        sections 'S'ave option.  Changes made via 'Alt L' whilst actually 
  1768.        online  only  apply  to the current call and  do  NOT  alter  the 
  1769.        dialling directory options for that service.
  1770.        
  1771.        Alt M
  1772.        
  1773.        Sends a message file.  In response to the prompt, enter the  name 
  1774.        of  the message file to be sent.  If no entry is made at all  and 
  1775.        ENTER  is pressed then the operation is aborted.  If a file  name 
  1776.        is  entered but no path component is specified then the  'Message 
  1777.        Path'  set in the configuration section is assumed and the  file, 
  1778.        if  found,  is  sent.   If the file name  entered  forms  a  mask 
  1779.        containing  any '*', '?' wild card characters then a file  window 
  1780.        is  opened  displaying all files which match the mask  ready  for 
  1781.        interactive  selection using the highlighted cursor bar.  If  ESC 
  1782.        is  pressed  from the initial prompt then the  entry  '*.MSG'  is 
  1783.        assumed  and the file window is opened, as in the wild card  case 
  1784.       
  1785.        described  above, ready for selection.  Files shown in  the  file 
  1786.        window  will initially be those in the 'Message  Path'  directory 
  1787.        which match the wild card mask.
  1788.        
  1789.        When  a  message  is  transmitted, the  delay  specified  in  the 
  1790.        dialling  directory  'Ascii CD' field is  inserted  between  each 
  1791.        character  sent and the delay in 'Ascii LD' is  inserted  between 
  1792.        lines.   Different remote service editors may  require  different 
  1793.        delays  -  start  with  both at zero and  vary  them  until  your 
  1794.        messages upload cleanly.  The delays are in 1/1000 of a second.
  1795.        
  1796.        This feature works in all terminal modes including Viewdata.   In 
  1797.        the case of Viewdata files created by an ordinary text editor can 
  1798.        be  sent  and  are  converted  to  Prestel  mailbox  form  during 
  1799.        transmission, taking advantage of the automatic word wrap.  Lines 
  1800.        do  not  need to be kept to the 40 character wide format  in  the 
  1801.        editor  but  do take care not to exceed the maximum  quantity  of 
  1802.        text  which a single Prestel mailbox frame will take.   Before  a 
  1803.        message  is  sent, you are asked if you wish to mark it  as  sent 
  1804.        (i.e.  give it the '.SNT' extension) - this can help you to  keep 
  1805.        track of which messages you have actually sent since only  '.MSG' 
  1806.        files  are displayed in the default message selection window  and 
  1807.        the '.SNT' files are thus no longer visible.
  1808.        
  1809.        Note:  An AsciiCD value of '999' is interpreted by EaziLink in  a 
  1810.        special way.  Some remote services are very speed sensitive  when 
  1811.        receiving prepared messages and often vary in response  depending 
  1812.        on user load at any particular time - Prestel is a prime example. 
  1813.        In such cases characters will be lost if the rate of transmission 
  1814.        of the message is too high.  Using an AsciiCD value of 999  tells 
  1815.        EaziLink to wait for each character sent to be echoed back before 
  1816.        sending  the next.  This should prevent the remote  service  from 
  1817.        being  out-paced.  You would be well advised to use this  feature 
  1818.        in all Prestel entries.
  1819.        
  1820.        Alt O
  1821.        
  1822.        Display the main online options help screen.
  1823.        
  1824.        Alt P
  1825.        
  1826.        Toggles the printer On/Off.  Text sent to the terminal is  echoed 
  1827.        on  the printer - rather as 'Capture' saves text to a disk  file. 
  1828.        The  textual content of Viewdata frames is printed out in one  go 
  1829.        following  the  same  logic  as  that  applying  to  the  Capture 
  1830.        to disk facility.
  1831.        
  1832.        Alt R
  1833.        
  1834.        Allows the images saved using Alt I to be redirected to an  image 
  1835.        file  of  your choice.  Viewdata image files have  the  extension 
  1836.        'I40', whilst other BBS image files have the extension 'I80'.  At 
  1837.        program   start-up   the  default  file  name  will   be   either 
  1838.        EAZILINK.I40   or  EAZILINK.I80  located  in  the  'Image   Path' 
  1839.        directory.   Remember  that changes to the file  name  here  will 
  1840.       
  1841.        affect  the R(edirect) file in the main menu View mode  and  vice 
  1842.        versa.
  1843.        
  1844.        Alt S
  1845.        
  1846.        In  Viewdata  text  and high resolution EGA  modes,  this  option 
  1847.        allows  the user to Snap the current frame image and echo  it  on 
  1848.        the  right hand side of the screen.  Alternate presses of  Alt  S 
  1849.        echo then clear the echoed image.  One use for this feature is to 
  1850.        Snap  a  message to you before making your reply  on  the  active 
  1851.        frame.  You then have all your recipients details on view.
  1852.        
  1853.        In  scrolling terminal modes, 'Alt S' toggles the status line  at 
  1854.        the  foot  of  the  screen on/off.  When off  all  25  lines  are 
  1855.        available  to the system for the display of text from the  remote 
  1856.        service.
  1857.        
  1858.        Alt T
  1859.        
  1860.        This  option toggles terminal emulation between ANSI-BBS,  VT100, 
  1861.        VT52 and TELETYPE with scrolling BBS systems and toggles  between 
  1862.        Viewdata  text, scrolling TELETYPE/VT100/VT52/ANSI-BBS,  Viewdata 
  1863.        CGA  mode  4  graphics and Viewdata EGA  graphics  displays  with 
  1864.        Viewdata  systems.   With scrolling systems this can be  used  to 
  1865.        'change  horses in mid stream' or to observe incoming ANSI  codes 
  1866.        in  the raw.  In Viewdata mode, EGA modes will only be  available 
  1867.        if your machine is fitted with an EGA or VGA card and a 'ECD'  or 
  1868.        'CD'  display.   The 'CD' display will only enable the  'LOW  EGA 
  1869.        GRAPHICS' mode to be used.  The mode 4 graphics display will only 
  1870.        be  available  if  your machine is fitted  with  a  colour  video 
  1871.        adapter  and  EaziLink  was  able  to  find  and  load  the  file 
  1872.        VIEWDATA.FNT.   The ability to change from Viewdata to  scrolling 
  1873.        TELETYPE  or  ANSI-BBS  etc. enables the  system  to  accommodate 
  1874.        scrolling services which are accessed as gateways from Prestel.
  1875.        
  1876.        Note:  The 'VIEWDATA.FNT' file need not be present to enable  the 
  1877.        CGA mode 4 graphics to be used on EGA systems since EaziLink uses 
  1878.        the EGA's built in 8x8 font for the CGA graphics.
  1879.        
  1880.        Alt U
  1881.        
  1882.        This  option  causes  the Utilities menu to  be  displayed.   The 
  1883.        utilities  available  are  the same as those  described  for  the 
  1884.        Utilities option invoked from the main menu.
  1885.        
  1886.        Alt X
  1887.        
  1888.        When using Xon/Xoff handshaking it is possible for line noise  to 
  1889.        generate the Xon character, causing the comms link to  apparently 
  1890.        hang-up.   What has probably happened is that  your  transmission 
  1891.        has  been  turned off accidentally and will not  normally  resume 
  1892.        unless  by shear chance line noise generates a  cancelling  Xoff. 
  1893.        You can recognise this situation by the fact that your keystrokes 
  1894.        have  no  effect and do not cause the TX light on your  modem  to 
  1895.        flicker  (your keystrokes are being stored in your  comms  buffer 
  1896.       
  1897.        but  are not being transmitted).  If this situation  arises,  you 
  1898.        simply  press  Alt X - this overrides the Xon  and  enables  your 
  1899.        transmission to resume. 
  1900.        
  1901.        Alt Z
  1902.        
  1903.        This option aborts any currently running script.  Use this if the 
  1904.        script goes astray and you wish to take over manually.
  1905.        
  1906.        Alt =
  1907.        
  1908.        This  toggles  IBM key mode on/off.  When on,  IBM  extended  key 
  1909.        code  combinations  are sent down the line in  response  to  keys 
  1910.        pressed  on the keyboard.  This is a special mode which needs  to 
  1911.        be  used to drive remote control software like Doorway  (tm)  and 
  1912.        our  own  EaziDoor system.  Because such remote  control  systems 
  1913.        require the full 25 line screen, 'Alt =' also toggles the  status 
  1914.        line,  at the foot of the screen, off too.  Do not use this  mode 
  1915.        for normal BBS communications.
  1916.        
  1917.        Alt 0
  1918.        
  1919.        This  option  sends a BREAK signal to the remote  service.   This 
  1920.        signal  is  rarely  needed but is required  by  some  systems  to 
  1921.        control  certain aspects of their operation. (Not Viewdata)
  1922.        
  1923.        Ctrl R
  1924.        
  1925.        This  is  the Viewdata Reveal key.  This forces  the  display  of 
  1926.        concealed text on a Viewdata frame.  (Viewdata only)
  1927.        
  1928.        Ctrl P
  1929.        
  1930.        This  option  toggles between the two  available  graphic  colour 
  1931.        palettes when using the Viewdata mode 4 graphics emulation.
  1932.        
  1933.                               TERMINAL EMULATION
  1934.        
  1935.        
  1936.        
  1937.        TELETYPE
  1938.        
  1939.        This  is the most basic terminal type.  Characters  received  are 
  1940.        simply  sent to the screen 'typewriter fashion'.  No special  key 
  1941.        translation  takes place on keystrokes transmitted via the  local 
  1942.        PC's keyboard.
  1943.        
  1944.        ANSI-BBS
  1945.        
  1946.        This  emulation  provides support for those  boards  which  offer 
  1947.        ANSI-BBS  displays.   It is capable of driving most  full  screen 
  1948.        editors, like the one built in to Searchlight BBS.
  1949.        
  1950.        The  keyboard is mapped to produce the same keyboard  translation 
  1951.        as the VT100 emulation described below.
  1952.        
  1953.        VT100 & VT52
  1954.        
  1955.        This   emulation  provides  support  for  DEC  VT100/VT52   based 
  1956.        services.   The  emulation does not include  132  column,  double 
  1957.        height/width characters or printer sequences.  These limitations, 
  1958.        mainly  imposed  by  the PC's hardware  limitations,  should  not 
  1959.        generally  prove  to  be a problem  in  practice.   The  emulator 
  1960.        supports  VT52  in  the VT100's  VT52  compatibility  mode.   The 
  1961.        remote  host can send  a command to the VT100 emulator to  switch 
  1962.        it  to  VT52  mode - In such cases the  status  line  is  updated 
  1963.        automatically to reflect the change in emulation.
  1964.        
  1965.        Note: The standard state for line-wrap with VT100 services is OFF 
  1966.        whilst EaziLink's ANSI-BBS line-wrap is ON.  Some VT100 services, 
  1967.        though  not all, need the DEL character to be sent for  Backspace 
  1968.        delete.
  1969.        
  1970.        The  VT100  emulation supports 'Alternate Keypad Mode'  and  also 
  1971.        'Application Mode' when the relevant control sequence is received 
  1972.        from the remote host.
  1973.        
  1974.        The  cursor keys plus HOME, END, DEL and Backspace are  supported 
  1975.        and  the  function  keys  F1..F10 and  Shift  F1..Shift  F10  are 
  1976.        supported  - representing the numeric key pad of the  VT100.  The 
  1977.        normal  function  keys  represent the left side  of  the  VT100's 
  1978.        numeric  keypad and the Shifted function keys the right  side  as 
  1979.        follows:
  1980.        
  1981.               IBM Function Keys                  DEC VT100 Keypad
  1982.        
  1983.            Normal         Shifted
  1984.          F1.....F10      F1.....F10
  1985.        
  1986.        +----+  +----+  +----+  +----+     +----+  +----+  +----+  +----+
  1987.        |PF1 |  |PF2 |  |PF3 |  |PF4 |     |PF1 |  |PF2 |  |PF3 |  |PF4 |
  1988.        +----+  +----+  +----+  +----+     +----+  +----+  +----+  +----+
  1989.        +----+  +----+  +----+  +----+     +----+  +----+  +----+  +----+
  1990.        | 7  |  | 8  |  | 9  |  | -  |     | 7  |  | 8  |  | 9  |  | -  |
  1991.        +----+  +----+  +----+  +----+     +----+  +----+  +----+  +----+
  1992.        +----+  +----+  +----+  +----+     +----+  +----+  +----+  +----+
  1993.        | 4  |  | 5  |  | 6  |  | ,  |     | 4  |  | 5  |  | 6  |  | ,  |
  1994.        +----+  +----+  +----+  +----+     +----+  +----+  +----+  +----+
  1995.        +----+  +----+  +----+  +----+     +----+  +----+  +----+  +----+
  1996.        | 1  |  | 2  |  | 3  |  | E  |     | 1  |  | 2  |  | 3  |  | E  |
  1997.        +----+  +----+  +----+  | N  |     +----+  +----+  +----+  | N  |
  1998.        +------------+  +----+  | T  |     +------------+  +----+  | T  |
  1999.        |      0     |  | .  |  | R  |     |      0     |  | .  |  | R  |
  2000.        +------------+  +----+  +----+     +------------+  +----+  +----+
  2001.        
  2002.        
  2003.        On  an  AT extended keyboard a function key  template  like  this 
  2004.        could be made:
  2005.        
  2006.        
  2007.        SHIFTED
  2008.        +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  2009.        | PF3 | PF4 |  9  |  -  |  6  |  ,  |  3  |ENTER|  .  |ENTER|
  2010.        +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  2011.        
  2012.        +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  2013.        | F1  | F2  | F3  | F4  | F5  | F6  | F7  | F8  | F9  | F10 |
  2014.        +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  2015.        
  2016.        +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  2017.        | PF1 | PF2 |  7  |  8  |  4  |  5  |  1  |  2  |  0  |  0  |
  2018.        +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  2019.        NORMAL
  2020.        
  2021.        Examples: Pressing F2 will send the VT100 PF2 key whilst pressing 
  2022.        SHIFT+F10 sends the VT100 ENTER key.
  2023.        
  2024.        
  2025.        VIEWDATA
  2026.        
  2027.        This  terminal  type emulates the frame based terminals  used  by 
  2028.        Viewdata  systems  such  as  Prestel.   The  basic  emulation  is 
  2029.        character based and will function on any of the common IBM  video 
  2030.        adapters.    This  form  of  emulation  uses  standard  IBM   ROM 
  2031.        characters to emulate the graphic shapes.  The emulation supports 
  2032.        all  colours  and  flashing  characters.   If  you  use  Viewdata 
  2033.        services to receive and send textual information, rather than  to 
  2034.        admire  the art work, you will find this emulation  satisfactory. 
  2035.        
  2036.       
  2037.        The Alt T command can be used to switch to other emulations  i.e. 
  2038.        TELETYPE/ANSI-BBS/VT100/VT52 and, on machines fitted with a  CGA, 
  2039.        EGA  or  VGA colour video adapters, a CGA mode  4,  four  colour, 
  2040.        graphics emulation is available.  On machines fitted with an  EGA 
  2041.        or  VGA adapter, high and low resolution EGA  graphic  emulations 
  2042.        are also available.  In all graphic modes all mosaic shapes, both 
  2043.        contiguous  and  separated,  and  double  height  characters  are 
  2044.        accurately reproduced.  Only 4 colours are available on a CGA  in 
  2045.        mode  4  and these are used to create the display but  true  full 
  2046.        colour  emulation  is  not possible.   Full  colour  and  graphic 
  2047.        fidelity  is offered in the EGA modes - the high  resolution  EGA 
  2048.        mode also offers the 'snap' feature (invoked via Alt S).  
  2049.        
  2050.        Flashing  characters are supported only in the text and EGA  high 
  2051.        resolution  graphics modes. It is possible for the  EGA  flashing 
  2052.        characters to flash against the same characters of another colour 
  2053.        which  is NOT the current background colour.  This is not  a  bug 
  2054.        but is a limitation of the hardware flashing method EaziLink uses 
  2055.        which  only allows one background colour per flashing  foreground 
  2056.        colour in the same frame - the vast majority of frames containing 
  2057.        flashing characters will be displayed as Prestel intended.
  2058.        
  2059.        Most of the on-line options, including continuous frame  capture, 
  2060.        are  disabled in graphic modes so toggle back to basic text  mode 
  2061.        emulation  to use them.  In CGA graphics mode Alt P  will  toggle 
  2062.        the display between the two colour palettes available in mode 4. 
  2063.        
  2064.        Please  note that if you have a machine fitted with a MDA or  HGC 
  2065.        monochrome  adapter,  EaziLink will disable access  to   Viewdata 
  2066.        graphic  modes.  In such cases pressing Alt T simply enables  the 
  2067.        choice of TELETYPE/ANSI-BBS/VT100/VT52 modes - the graphic  modes 
  2068.        are excluded from the menu.  This will also be the case, on a CGA 
  2069.        based system, if EaziLink failed to find and load VIEWDATA.FNT in 
  2070.        the main EaziLink directory. 
  2071.        
  2072.        The   TELETYPE/ANSI-BBS/VT100/VT52  scrolling  modes  have   been 
  2073.        included  to take advantage of scrolling services made  available 
  2074.        via  gateways  from Prestel.  Whilst in scrolling  mode  EaziLink 
  2075.        behaves exactly as it would in the main scrolling emulations e.g. 
  2076.        image files switch from the 'I40' to the 'I80' type etc.  When in 
  2077.        scrolling  mode,  return  to  the  main  Viewdata  system  BEFORE 
  2078.        switching  EaziLink back to text based Viewdata  mode.   EaziLink 
  2079.        sends  the frame refresh sequence automatically -  thus  ensuring 
  2080.        that the first Viewdata frame is displayed cleanly on returning. 
  2081.        
  2082.        Keyboard translation takes place to support the use of the cursor 
  2083.        keys and the hash key (Shift 3).  The following IBM keys are also 
  2084.        translated:
  2085.        
  2086.        DEC  HEX       IBM       VIEWDATA
  2087.        
  2088.        91   5B        [         (Left arrow)
  2089.        92   5C        \         (1/2 symbol)
  2090.        93   5D        ]         (Right arrow)
  2091.        94   5E        ^         (Up arrow)
  2092.       
  2093.        95   5F        _         (Pound sign)
  2094.        123  7B        {         (1/4 symbol)
  2095.        124  7C        |         (Double vertical)
  2096.        125  7D        }         (3/4 symbol - graphic modes only)
  2097.        126  7E        ~         (Divide sign)
  2098.        
  2099.        In  Viewdata  mode only, the enquiry code (code 5), sent  by  the 
  2100.        remote host, is recognised and stored in the history buffer where 
  2101.        it can be detected in a script like this:
  2102.        
  2103.        Await "^E"
  2104.        
  2105.        Note:  The  enquiry  code is not seen on-screen.   At  least  one 
  2106.        Viewdata service sends an enquiry code and requires an  immediate 
  2107.        ID number response - This mechanism will handle such situations.
  2108.        
  2109.                                     MACROS
  2110.        
  2111.        
  2112.        EaziLink  supports powerful keyboard macros which can be used  to 
  2113.        carry  out a wide variety of tasks both on and off-line.   Please 
  2114.        note that macros can only be used within EaziLink - they will not 
  2115.        work whilst in the DOS shell.  Macros automate keystrokes and are 
  2116.        the  equivalent of the operator pressing the keys represented  in 
  2117.        the  macro.   Macros may contain ordinary characters  and  escape 
  2118.        sequences used to represent special keys.
  2119.        
  2120.        Characters  in  the range '@'..'[', prefixed with  a  '^'  symbol 
  2121.        generate  appropriate CTRL keystrokes, in the same way  that  the 
  2122.        '^'  is used in modem control strings.  Some particularly  useful 
  2123.        codes are:
  2124.          
  2125.        ^M   Equivalent to the RETURN key.
  2126.        ^[   Equivalent to the ESC key.
  2127.        ^H   Equivalent to the BACKSPACE delete key.
  2128.        ^Y   Equivalent to keying CTRL Y - clears the line when editing.
  2129.         
  2130.        In addition to the control key sequences like '^M','^H' etc.  and 
  2131.        system  variables like '%path' (see: SYSTEM VARIABLES),  the  Alt 
  2132.        key combinations used within EaziLink can also be entered into  a 
  2133.        macro by prefixing the appropriate letter with the '@' symbol.
  2134.        
  2135.        For example the macro...
  2136.        
  2137.        @R^YE:\IMAGE^M
  2138.        
  2139.        would,  if pressed whilst on-line, invoke the  image  redirection 
  2140.        window  (@R) clear the current file path and name (^Y) and  enter 
  2141.        'E:\IMAGE'  as  the  new image capture file path  and  name,  the 
  2142.        operation is completed with a carriage return (^M).
  2143.        
  2144.        To enter the '@' character itself into a macro use '@@', just  as 
  2145.        '^^' will enter the '^' character.
  2146.        
  2147.        In  addition a number of special tokens may be included within  a 
  2148.        macro which are interpreted as the equivalent of pressing certain 
  2149.        special keys:
  2150.        
  2151.        {u}     Cursor UP
  2152.        {d}     Cursor DOWN
  2153.        {l}     Cursor LEFT
  2154.        {r}     Cursor RIGHT
  2155.        {pu}    PG UP
  2156.        {pd}    PG DN
  2157.        {h}     HOME
  2158.        {e}     END
  2159.        {ins}   INS
  2160.        {del}   DEL
  2161.        
  2162.        {f1}-F1    {sf1}-SHFT F1    {cf1}-CTRL F1    {af1}-ALT F1  
  2163.        {f2}-F2    {sf2}-SHFT F2    {cf2}-CTRL F2    {af2}-ALT F2
  2164.       
  2165.        {f3}-F3    {sf3}-SHFT F3    {cf3}-CTRL F3    {af3}-ALT F3
  2166.        
  2167.        etc....
  2168.        
  2169.        {f10}-F10   {sf10}-SHFT F10   {cf10)-CTRL F10   {af10}-ALT F10
  2170.        
  2171.        
  2172.        The  character/s in the curly brackets are not case  sensitive  - 
  2173.        tokens  could  be  entered as say '{D}' or '{d}'  with  the  same 
  2174.        effect.    Macros  can  call  other  macros  by   including   the 
  2175.        appropriate  {cfn} or {afn} token in the macro - for  example  if 
  2176.        the following macros are defined:
  2177.        
  2178.        CTRL F1    'The machine was {cf2) fast.'
  2179.        CTRL F2    'extremely'
  2180.        
  2181.        When  CTRL F1 is pressed, the string 'The machine  was  extremely 
  2182.        fast.' would be produced.  And if the following macro is defined:
  2183.        
  2184.        CTRL F1    'This will repeat until ESC is pressed!{cf1}'
  2185.        
  2186.        The  macro would remain in a loop, repeating the text, until  the 
  2187.        macro was cancelled by pressing ESC.
  2188.        
  2189.        Please note that the '|' and '~' tokens can be used to  represent 
  2190.        a RETURN and half second delay respectively, as they can in modem 
  2191.        control and script strings.  The characters '{' and '}' cannot be 
  2192.        used  in macros, other than in the special tokens  listed  above, 
  2193.        since  they  are  used by EaziLink's  internal  macro  processor. 
  2194.        Macros  are  not  supported in host mode.  Since  macros  can  be 
  2195.        executed from almost anywhere within EaziLink, it is possible  to 
  2196.        set  one  off accidentally in an inappropriate place.   For  this 
  2197.        reason  the ESC key will terminate any macro which  is  currently 
  2198.        executing  -  this enables the user to kill a run-away  macro  in 
  2199.        it's  tracks.  The current maximum total length of nested  macros 
  2200.        is  512  characters  - if this is exceeded an  error  message  is 
  2201.        generated.
  2202.        
  2203.        A  command  line switch '/M' is supported to enable the  user  to 
  2204.        force  EaziLink  to load any macro '.KEY' file  rather  than  the 
  2205.        default  file  EAZILINK.KEY.  A further extra  parameter  may  be 
  2206.        included to force a macro to execute automatically after EaziLink 
  2207.        has loaded.  The general syntax is:
  2208.        
  2209.        C>eazilink /mfilename.key macro
  2210.        
  2211.        Where 'filename.key' is the name of the macro file to be  loaded. 
  2212.        Please  note  that the extension may be excluded  (EaziLink  will 
  2213.        assume '.KEY' in such cases) and 'macro' is an optional macro  to 
  2214.        be executed after program  start-up.
  2215.        
  2216.        For example:
  2217.        
  2218.        C>eazilink /msetup.key {af1}
  2219.        
  2220.       
  2221.        Would  cause  EaziLink  to  load  the  macro  file   'setup.key', 
  2222.        automatically  work through to the Main Menu and execute {af1}  - 
  2223.        as if ALT F1 had been pressed by the user.  Since macros can call 
  2224.        each  other  - a whole sequence of events could be  triggered  by 
  2225.        this  simple  mechanism.   This mechanism is  used  to  implement 
  2226.        EaziLink's auto-installation system.
  2227.        
  2228.        If the '/m' is NOT followed by the 'filename.key' field, but  the 
  2229.        optional  'macro'  field is present, then the 'macro'  is  simply 
  2230.        executed from the Main Menu - for example:
  2231.        
  2232.        C>eazilink /m dq2^M
  2233.        
  2234.        Will  go from the Main Menu to the 'D'ialling  directory,  select 
  2235.        'Q'ueue,  enter  '2', and terminate the queue input  with  RETURN 
  2236.        '^M' - Contact number 2 in the current dialling directory will be 
  2237.        called.
  2238.        
  2239.        N.B. When the optional 'macro' parameter is included,  keystrokes 
  2240.        required  to  reach the Main Menu are  automatically  made.   The 
  2241.        'macro'  keystrokes,  'ALT  F1' in the  example  above,  will  be 
  2242.        triggered  only when the Main Menu has been reached, REMEMBER  to 
  2243.        take  into account that the program will be displaying  the  Main 
  2244.        Menu when the macro is executed.
  2245.        
  2246.        If  the  'macro' parameter is not specified, EaziLink  loads  the 
  2247.        named  macro  file but the user must make  the  usual  keystrokes 
  2248.        required to reach the Main Menu.
  2249.        
  2250.        Note: EaziLink always looks for '.KEY' files in the 'Macro  Path' 
  2251.        directory,  as  specified  in  the  configuration  'File   Paths' 
  2252.        section, unless a full path is included in 'filename.key'.
  2253.        
  2254.                                 SIMPLE SCRIPTS
  2255.        
  2256.        The  EaziLink v4 script language is far more powerful  than  that 
  2257.        included in earlier releases whilst retaining compatibility  with 
  2258.        the  earlier script language.  This section describes just  those 
  2259.        few simple commands required to automate log-ons.  The  'Advanced 
  2260.        Scripts'  section  later  goes into the new  script  language  in 
  2261.        detail.
  2262.        
  2263.        Simple  script files are used to automate the process of  logging 
  2264.        onto  remote systems.  A script file is a text file which can  be 
  2265.        created using any editor that produces standard ASCII text files. 
  2266.        
  2267.        When a connection is made, via the dialling directory, the script 
  2268.        file  specified in the directory entry script field, if  any,  is 
  2269.        loaded and run automatically.  The script works by waiting for  a 
  2270.        particular prompt string from the remote host and then sending an 
  2271.        appropriate  reply.   To  achieve this just  three  commands  are 
  2272.        needed - AWAIT, REPLY and AWAKE.  A fourth command MACRO has been 
  2273.        included to enable a macro to be run from within a script,  which 
  2274.        can be very useful. 
  2275.        
  2276.        
  2277.        The general form the AWAIT command is:
  2278.        
  2279.        AWAIT "String" Time
  2280.        
  2281.        Where  'String' is the string from the host to be waited for  and 
  2282.        'Time'  is  the maximum time in seconds to wait.   If  'Time'  is 
  2283.        excluded then a default of 30 seconds is used.  Please note  that 
  2284.        spaces  and  double quotes must be used as shown.  If  'Time'  is 
  2285.        exceeded without receiving the expected string from the host then 
  2286.        the  script is aborted and an error message produced -  the  user 
  2287.        may then take over manually if desired. 
  2288.        
  2289.        The general form of the REPLY command is:
  2290.        
  2291.        REPLY "String"
  2292.        
  2293.        Where  'String'  is the string to be sent to the remote  host  in 
  2294.        response  to  a successful AWAIT command.  The  'String'  in  the 
  2295.        REPLY command may include System Variables for substitution (see: 
  2296.        SYSTEM  VARIABLES)  and may also include the  control  characters 
  2297.        '~', '^' and '|'.
  2298.        
  2299.        
  2300.        The general form of the AWAKE command is:
  2301.        
  2302.        AWAKE "String" Time
  2303.        
  2304.        Where  'String'  is the character or string of characters  to  be 
  2305.        sent to the remote host and 'Time' is the maximum time for  which 
  2306.        the  command is to try to awaken the remote host.  If  'Time'  is 
  2307.        excluded  then  a default of 30 seconds is  used.   This  command 
  2308.        sends the 'String' to the remote host repeatedly until a response 
  2309.       
  2310.        of any kind is received from the host.  'String' may include  the 
  2311.        control  characters  '~',  '^' and '|'.  This  command  can,  for 
  2312.        example, be used to send an uncertain number of return characters 
  2313.        needed to make some services continue at certain places during  a 
  2314.        log-in procedure.
  2315.        
  2316.        
  2317.        The general form of the MACRO command is:
  2318.        
  2319.        MACRO "String"
  2320.        
  2321.        Where  'String' is a macro, consisting of characters  and  escape 
  2322.        sequences  as  described  in the MACROS  section  earlier.   This 
  2323.        command may be used for many things - if the line:
  2324.        
  2325.        macro "@C^YPRESTEL^M"
  2326.        
  2327.        appeared  in the Prestel log-on script, it would ensure that  the 
  2328.        whole  of  that  Prestel  on-line session  was  captured  to  the 
  2329.        PRESTEL.CAP file. 
  2330.        
  2331.        
  2332.        Any  line in a script file which is empty or begins with  one  of 
  2333.        the  characters  '/',  '.', ';' is treated as a  comment  and  is 
  2334.        ignored by the script processor.  Below is a typical script which 
  2335.        could be used for an EaziHost board.
  2336.        
  2337.        
  2338.        / EAZIHOST Auto log-on script
  2339.        / --------------------------
  2340.        
  2341.        
  2342.        Await ">" 20
  2343.        Reply "John Smith^M"
  2344.        
  2345.        Await "Password:" 20
  2346.        Reply "%password^M"
  2347.        
  2348.        
  2349.        Please note the use of '^M' to send a RETURN after each  response 
  2350.        (  a  '|' could have been used also) and the use  of  the  system 
  2351.        variable '%password' which is replaced by the actual password for 
  2352.        the  host  stored in the dialling directory  entry.  (see  System 
  2353.        Variables)
  2354.        
  2355.        Be sure to store scripts in the directory which you specified  in 
  2356.        the 'Script Path' field in the configuration section or they will 
  2357.        not be found by EaziLink.  
  2358.        
  2359.        Some  of  the supplied scripts may need to be  changed  for  some 
  2360.        systems.   For example the Opus script would need to be  modified 
  2361.        if a front end mailer was being run in conjunction with the  Opus 
  2362.        board.
  2363.        
  2364.        Note:  The  script  processor stores  the  last  1000  characters 
  2365.        received from the remote host and checks using 'await' only  when 
  2366.        there  is a pause in incoming characters - i.e. when  the  remote 
  2367.        host is waiting for a response.  When a carriage return character 
  2368.        is received it is represented in the store by a '|' symbol.  Thus 
  2369.        if a remote host sends the following prompt:
  2370.        
  2371.        Enter your name
  2372.        >
  2373.        
  2374.        You  could  use 'await ">"', 'await "Enter your  name"'  or  even 
  2375.        'await  "Enter  your  name|>"' and all would  do  the  job.   The 
  2376.        character store is cleared when each 'await' command is satisfied 
  2377.        to  ensure  that earlier strings in the  store  cannot  influence 
  2378.        future  'await'  commands.  The character store is  also  cleared 
  2379.        just  before  an  'awake' command is  executed,  to  ensure  that 
  2380.        'awake'  can detect when the host makes any response  to  awake's 
  2381.        prompting.  The await command is NOT case sensitive -  'Password' 
  2382.        is  the same string as 'PASSWORD' as far as the script  processor 
  2383.        is  concerned.  Remember how the system works when  writing  your 
  2384.        scripts and you should find it quite easy.
  2385.        
  2386.                                ADVANCED SCRIPTS
  2387.        
  2388.        
  2389.        Overview
  2390.        
  2391.        Whilst  online,  EaziLink  holds  the  previous  1000  characters 
  2392.        received  from the remote host in a special buffer -  Note:  this 
  2393.        will  mean  that  in the case of Viewdata systems,  a  full  non-
  2394.        dynamic frame is held in the buffer at once which means that text 
  2395.        from  anywhere  on  the frame can be used  to  trigger  a  script 
  2396.        response.
  2397.        
  2398.        Strings  of characters received in this way can then be  used  to 
  2399.        implement scripts which trigger actions by EaziLink dependent  on 
  2400.        the  received data.  This store of characters is referred  to  as 
  2401.        'History' in the following text.  Carriage returns, when received 
  2402.        from the host, are stored in the history as '|' symbols.
  2403.        
  2404.        The 'Await' command, which is used to look for specific  incoming 
  2405.        strings  from the remote host, checks the history whenever  there 
  2406.        is a pause in incoming characters.
  2407.        
  2408.        The  scripts can include labels and jump mechanisms which may  or 
  2409.        may not be associated with a return - These are the equivalent of 
  2410.        Basic's Goto and Gosub commands.
  2411.        
  2412.        The  script system imposes no size limits on the scripts  nor  do 
  2413.        large  scripts use up more memory than small ones.  The  language 
  2414.        is kept as simple as possible with few commands to learn but much 
  2415.        can  be  achieved  using it.  It is as simple as  the  DOS  batch 
  2416.        language  to  use so you don't have to be a programmer  to  write 
  2417.        scripts for EaziLink.  
  2418.           
  2419.        Please note that scripts are read and executed directly from  the 
  2420.        disk  as  required, making it possible to have  unlimited  script 
  2421.        size  without using more precious RAM with larger  scripts.   The 
  2422.        downside  of  this  method is that  some  script  operations  may 
  2423.        operate  slowly on slow hard disk or floppy disk based  machines. 
  2424.        A  small disk cache, located out of the base  memory  preferably, 
  2425.        will  be  a help in such cases.  In any case it  is  only  really 
  2426.        character by character type operations which will appear sluggish 
  2427.        on  slow  systems  -  The user will usually  be  unaware  of  any 
  2428.        sluggishness otherwise.
  2429.        
  2430.        After  a successful 'Await' (or 'Found') command the  history  is 
  2431.        normally  cleared to prevent a future 'Await' from responding  to 
  2432.        an  earlier string still held in the history.  Sometimes you  may 
  2433.        not  want  this  to happen.  You may want to  check  for  another 
  2434.        string  in  the same history as a previously  successful  'Await' 
  2435.        command - So this clearing can be controlled via 'AutoClear'  and 
  2436.        'Clear' commands described later.
  2437.        
  2438.        'Await',  used  in it's original way as a  simple  command,  will 
  2439.        abort  automatically  if it fails, just as in  previous  EaziLink 
  2440.        releases.
  2441.       
  2442.        
  2443.        Await can now be used in another way though.  When the result  of 
  2444.        an 'Await' statement is assigned to a boolean variable like this:
  2445.        
  2446.        !B=Await "Password:" 20
  2447.        
  2448.        then  the boolean can be tested in an 'If' statement and  program 
  2449.        execution  can be made to jump to a new location in the script  - 
  2450.        thus decision making is made possible in scripts.
  2451.        
  2452.        The 'Awake' command may be used in it's original form, or may  be 
  2453.        used in a boolean assignment - Just as 'Await' can.
  2454.        
  2455.        Gosubs may be nested up to a level of 16 deep.  Code jumped to by 
  2456.        a  Gosub  must end with a 'Return' command.   The  'Return'  will 
  2457.        return  control to the line immediately following the line  which 
  2458.        invoked the Gosub.  Returns must ONLY be encountered as a  result 
  2459.        of  a Gosub call.  Returns should NEVER be 'run-into' by  general 
  2460.        script flow otherwise, or an error message will be generated.  In 
  2461.        other  words Gosubs and Returns are matched pairs - A Return  can 
  2462.        only execute if it was preceded by a Gosub call.
  2463.        
  2464.        26  numeric  variables are supported.  They  are  represented  in 
  2465.        scripts  as #A..#Z.  Commands are available to enable  assignment 
  2466.        and  complex  value tests to be performed on these  variables  or 
  2467.        expressions   containing   numeric   constants,   variables   and 
  2468.        operators.
  2469.        
  2470.        Numeric  values have a range of -32768..32767.  Attempts  to  use 
  2471.        values outside this range, or expressions creating values outside 
  2472.        this range, will result in an error message.
  2473.        
  2474.        26  boolean  variables are supported represented  by  !A..!Z.   A 
  2475.        boolean variable can only hold the value TRUE or FALSE which  are 
  2476.        equivalent to values 1 and 0 respectively.  Booleans can be  used 
  2477.        in  expressions  freely  as if they were their  1  or  0  numeric 
  2478.        variable equivalent.
  2479.        
  2480.        26  string  variables  are supported represented  by  $A..$Z.   A 
  2481.        string  variable  can  hold a number of characters from  1  to  a 
  2482.        maximum of 80, or may hold nothing at all.  String variables  can 
  2483.        be used in expressions and anywhere else where numeric  variables 
  2484.        can  be  used BUT ONLY IF they contain a string of  digits  which 
  2485.        represent a valid number.
  2486.        
  2487.        All numeric variables are initialised to 0, boolean variables are 
  2488.        initialised  to  FALSE (0) and all strings are defined  as  empty 
  2489.        when a script starts.
  2490.        
  2491.        A number of string functions are supported which can be  included 
  2492.        in arithmetic expressions.
  2493.        
  2494.        File handling routines are provided to allow as many as 10  files 
  2495.        to be open and in use at the same time.
  2496.        
  2497.        
  2498.        Labels
  2499.        
  2500.        Labels  must  start  with  a ':' but may  consist  of  any  other 
  2501.        following  string of characters excluding the space  character  - 
  2502.        For example:
  2503.        
  2504.        :Start
  2505.        :Start2
  2506.        :StartHere
  2507.        :End - Script terminates here!
  2508.        
  2509.        are all legitimate unique labels which can be used as the  target 
  2510.        of  a  Goto  or  Gosub.  Labels can be  of  any  length  and  all 
  2511.        characters are significant.  Since labels cannot include  spaces, 
  2512.        a  label  is deemed to end at the first space after  the  ':'  is 
  2513.        encountered so comments may be added after a space after a  label 
  2514.        as  in  the last example above i.e. the label is ':End'  and  the 
  2515.        rest  '  - Script terminates here!' is just a  comment  which  is 
  2516.        ignored  by  the  script  processor.   Other  comment  forms  are 
  2517.        discussed below.
  2518.        
  2519.        Note: Never use the same label name twice in the same script.
  2520.        
  2521.        
  2522.        Comments
  2523.        
  2524.        A  comment may be added to your script file either on a  line  by 
  2525.        itself or at the end of any line.  Such comments must be enclosed 
  2526.        in  curly brackets.  The last character on the line must  be  '}' 
  2527.        and  the  comment  itself  must  NOT  contain  the  '{'  or   '}' 
  2528.        characters.  Examples
  2529.        
  2530.        { This is a comment }
  2531.        $A="Hello world!"    { Assign 'Hello world!' to variable $A }
  2532.        
  2533.        Comments  are used by the script writer to add helpful  notes  to 
  2534.        the  code and are ignored by the script processor.   In  addition 
  2535.        any line starting with the '/' character is treated as a comment.
  2536.        
  2537.        COMMANDS
  2538.        
  2539.        
  2540.        Await,  Awake, Reply, Macro & Abort all function exactly as  they 
  2541.        did  in earlier EaziLink releases for compatibility.   Await  and 
  2542.        Abort have additional capabilities now.
  2543.        
  2544.        
  2545.        Await & Found
  2546.        
  2547.        General forms:  Await "String" T
  2548.                        !B=Await "String" T
  2549.                        !B=Await $P T
  2550.        
  2551.        
  2552.        Where: 'String' is the sequence of characters which 'Await' looks
  2553.                for   from  the  remote  host.   It  may,   optionally,
  2554.                contain references to variables prefixed with the '%'
  2555.                symbol.
  2556.        
  2557.               'T' is an OPTIONAL time in seconds for which 'String' is
  2558.               waited for - Range 0..32767 - (Default 30 seconds).
  2559.        
  2560.        Using the first, non-assignment, form of 'Await', the script will 
  2561.        be aborted with a 'Time-out' message on failure.
  2562.        
  2563.        In  the second general form '!B' represents any boolean  variable 
  2564.        to  which the result of the 'Await' will be assigned - '!B'  will 
  2565.        become  TRUE (1) if the 'Await' succeeds or FALSE (0) if not  and 
  2566.        the script continues.
  2567.        
  2568.        'Found'  has exactly the same functionality as 'Await' - You  may 
  2569.        find  that  'Found' is more indicative of what you  are  actually 
  2570.        doing under some circumstances.  If you are checking for  various 
  2571.        strings in the history having turned AutoClear off, 'Found' looks 
  2572.        to  be  the  more  logical command to use  and  may  improve  the 
  2573.        readability of your script.
  2574.        
  2575.        
  2576.        Reply & Send
  2577.        
  2578.        General form:  Reply "String"
  2579.                  or:  Send "String"
  2580.                  or:  Reply $x    ( or #x or !x )
  2581.        
  2582.        Where: 'String' is any sequence of characters to be sent to the
  2583.               remote host.  'String' may contain special escape codes to
  2584.               emulate the use of the Ctrl key.
  2585.        
  2586.        The third variation can be used where a single variable is to  be 
  2587.        sent  -  The numeric, boolean or string variable is  expanded  to 
  2588.        it's full ASCII value or content before being sent.
  2589.        
  2590.        'Send' has exactly the same functionality as the 'Reply' command. 
  2591.        In  both  'Send' and 'Reply' the string to be sent,  enclosed  in 
  2592.       
  2593.        quotes, may include a reference to one of the 26 numeric, boolean 
  2594.        or  string  variables.  The variable must, when  included  within 
  2595.        quotes, be prefixed with a '%' sign for the conversion to  digits 
  2596.        or string contents to take place.  For example:
  2597.        
  2598.        If the numeric variable #B contained the value 12 then:
  2599.        
  2600.        Send "Area %#B please"
  2601.        
  2602.        would be sent as "Area 12 please"
  2603.        
  2604.        Boolean  variables  will convert to 1 or 0 dependent  on  whether 
  2605.        they are TRUE or FALSE.  String variables convert to the string's 
  2606.        contents.
  2607.        
  2608.        Macro
  2609.        
  2610.        General form:  Macro "MString"
  2611.                       Macro $M
  2612.        
  2613.        Where: 'MString' is a string of characters which may include
  2614.               special escape codes which emulate use of the Ctrl, Alt,
  2615.               PGUP/PGDN keys etc. (See the EaziLink documentation for
  2616.               macro syntax)
  2617.        
  2618.        The  'Macro'  command  is pivotal to the  the  implementation  of 
  2619.        powerful  scripts  in that it is the mechanism by  which  capture 
  2620.        files can be opened/closed, file upload/downloads can be  started 
  2621.        etc.   In fact virtually any actions which a human user can  take 
  2622.        via  key presses within EaziLink can be executed via the  'Macro' 
  2623.        script  command.   See  the details for  'Macro'  syntax  in  the 
  2624.        EaziLink documentation.
  2625.        
  2626.        Macros  should  generally  be  used to  drive  the  purely  local 
  2627.        functions of EaziLink such as those actions which require Alt key 
  2628.        sequences or PGUP/PGDN keys etc.  Normal online interaction  with 
  2629.        the  remote host should generally be carried out via the  'Reply' 
  2630.        or 'Send' commands.
  2631.        
  2632.        Example:
  2633.        
  2634.        Macro "@C^YMAIL.CAP~~^M"
  2635.        
  2636.        Opens  a capture file called MAIL.CAP.  The various  elements  of 
  2637.        this macro are:
  2638.        
  2639.        @C          Alt C  ('@' = Alt key )
  2640.        ^Y          Clear the file name field
  2641.        MAIL.CAP    Type in the name of the capture file
  2642.        ~~          1 second pause just so you can see what is happening.
  2643.        ^M          Press [RETURN] to complete the command.
  2644.                    ('^' = Ctrl key)
  2645.        
  2646.        
  2647.        The macro command:
  2648.       
  2649.        
  2650.        Macro "@CC"
  2651.        
  2652.        will close the capture file when it is no longer needed.
  2653.        
  2654.        'MString'  may  contain  references to any  of  the  26  numeric,  
  2655.        boolean and string variables.  The variable must be prefixed with 
  2656.        a  '%'  sign for the conversion to digits or string  contents  to 
  2657.        take place.
  2658.        
  2659.        For example:
  2660.        
  2661.        If the numeric variable #B contained the value 5 then:
  2662.        
  2663.        Macro "@C^YMAIL%#B.CAP"
  2664.        
  2665.        Would open a capture file called 'MAIL5.CAP'.
  2666.        
  2667.        Boolean  variables  will convert to 1 or 0 dependent  on  whether 
  2668.        they are TRUE or FALSE.  String variables convert to the string's 
  2669.        contents.
  2670.        
  2671.        In  the unlikely event of you actually wanting the strings  '%#', 
  2672.        '%!'  or  '%$'  to  be included in  a  macro  literally,  without 
  2673.        conversion, use the '^' to break up the pattern like this:
  2674.        
  2675.        Macro "Send this without conversion %^#B"
  2676.        
  2677.        Note: Script execution is suspended until all keystrokes included 
  2678.        in a macro are removed from the key buffer and used by  EaziLink.  
  2679.        This  prevents the script from running ahead of  macro  execution 
  2680.        which could present timing problems in certain situations.
  2681.        
  2682.        
  2683.        Awake
  2684.           
  2685.        General forms:  Awake "String" T
  2686.                        !B=Awake "String" T
  2687.                        !B=Awake $P T
  2688.        
  2689.        
  2690.        Where: 'String' is a string of characters to be sent to the remote
  2691.               host.  'T' is an OPTIONAL time in seconds for which the
  2692.               remote is to be sent 'String' and wait for a response.
  2693.               'T' is in the range 0..32767 - (Default 30 seconds).  Any
  2694.               response by the remote host is taken to be success.
  2695.        
  2696.        'String' may include the control characters '~', '^' and '|'.
  2697.        
  2698.        Using the first, non-assignment, form of 'Awake', the script will 
  2699.        be aborted with a 'Time-out' message on failure.
  2700.        
  2701.        In  the second general form '!B' represents any boolean  variable 
  2702.        to  which the result of the 'Awake' will be assigned - '!B'  will 
  2703.        become  TRUE (1) if the 'Awake' succeeds or FALSE (0) if not  and 
  2704.       
  2705.        the script continues.
  2706.        
  2707.        'Awake' is used to prompt those systems which require a number of 
  2708.        keypresses to be received before they go into action when you log 
  2709.        on.  If 'T' expires the script aborts.
  2710.        
  2711.           
  2712.        Abort
  2713.          
  2714.        Abort  is  slightly  more flexible than it  was  in  EaziLink  v3 
  2715.        scripts in that it may take an optional string, in double quotes, 
  2716.        as  a parameter.  If the string is present it is displayed in  an 
  2717.        error  box  as  the script is aborted - Otherwise  the  abort  is 
  2718.        'silent' just as in earlier releases of EaziLink.
  2719.        
  2720.        Examples:
  2721.        
  2722.        Abort
  2723.        Abort "Failed to receive 'Password:'"
  2724.        
  2725.        
  2726.        Message
  2727.           
  2728.        General forms: Message "String"
  2729.                       Message "String" T
  2730.                       Message $R
  2731.        
  2732.        Where: 'String' is a message to be shown in a pop-up box on the
  2733.               screen. '$R' is a string variable, the contents of which
  2734.               are to be displayed in the pop-up box.
  2735.        
  2736.               'T' is an optional time parameter which defines, in
  2737.               seconds, the maximum time for which the message will be 
  2738.               displayed.  If no 'T' parameter is present the display
  2739.               can only be terminated by use of the ESC key.
  2740.        
  2741.        The  message  box  is cancelled by pressing [ESC],  or  when  'T' 
  2742.        seconds have elapsed, and the script continues.
  2743.        
  2744.        
  2745.        Exit
  2746.           
  2747.        General form:  Exit
  2748.        
  2749.        The  normal  way  to  terminate  a  script.   A  script  is  also 
  2750.        terminated if the script flow reaches the end of the script file.
  2751.        
  2752.        
  2753.        Goto
  2754.           
  2755.        General form:  Goto LAB
  2756.        
  2757.        Program control jumps to the label 'LAB'.  No return is involved.
  2758.        
  2759.        
  2760.       
  2761.        Gosub
  2762.           
  2763.        General form:  Gosub LAB
  2764.        
  2765.        Program  control jumps to the label 'LAB'.  A return  address  is 
  2766.        stored  and program control is returned to the  line  immediately 
  2767.        following the original Gosub command when the 'Return' command is 
  2768.        encountered.
  2769.        
  2770.        
  2771.        Return
  2772.           
  2773.        General form:  Return
  2774.        
  2775.        Returns control to the line immediately following the last  Gosub 
  2776.        command.   Return may be used as a command on it's own or may  be 
  2777.        executed as the result of an 'If' evaluation.  (See 'If' )
  2778.        
  2779.        
  2780.        If
  2781.          
  2782.        General form:  If Expression then Action1
  2783.                  or:  If Expression then Action1 else Action2
  2784.        
  2785.        Where: 'Expression' can be any arithmetic/logical expression, as
  2786.               defined in the Variables section, which evaluates to  TRUE 
  2787.               or FALSE (1 or 0)
  2788.        
  2789.               'Action1' is any ONE valid command or statement which will
  2790.               be executed if 'Expression' is TRUE.
  2791.               'Action2' is an OPTIONAL command or statement to be
  2792.               executed if 'Expression' is FALSE.
  2793.        
  2794.        The 'Actions' may be assignments, jumps (Goto or Gosub) etc.
  2795.        
  2796.        The  'Action'  can NOT be another 'If' statement.   If  a  'Menu' 
  2797.        command  is  the be one of the 'Actions' make sure the  string  ' 
  2798.        ELSE ' is NOT used as a menu options.
  2799.        
  2800.        Examples:
  2801.        
  2802.        If #G=5 then goto End else goto Loop
  2803.        If #D>#A AND ((#A<=10) OR (#A=0)) then gosub Do else gosub Don't
  2804.        If #X>10 then #X=1 else #X=#X+1
  2805.        If Exists($F) then Append(0) $F else Create(0) $F
  2806.        
  2807.        
  2808.        Notes
  2809.        
  2810.        -  Any  valid  command or statement can be executed  by  an  'If' 
  2811.        statement,  the only other course of action possible is that  the 
  2812.        command will allow the script to fall through to the next line if 
  2813.        the command has only a 'then' component (no else section) and the 
  2814.        'Expression' evaluates to FALSE (0) - e.g.:
  2815.        
  2816.       
  2817.        If !B then goto SendPassword
  2818.        
  2819.        here  if  the  boolean variable '!B' is  TRUE  (1)  then  program 
  2820.        control  jumps  to the label  'SendPassword',  otherwise  program 
  2821.        control  simply continues on the next line.  Notice  that  actual 
  2822.        labels have a leading ':' symbol but references to them elsewhere 
  2823.        do not.
  2824.        
  2825.        -   If  Gosub is used rather than Goto then  the  current  script 
  2826.        position  is stored and the code jumped to must be a  section  of 
  2827.        code terminated by a 'Return' command.  The 'Return' command will 
  2828.        return program control to the line immediately following the line 
  2829.        which made the Gosub call.
  2830.        
  2831.        -  Full expression evaluation is ALWAYS performed - Short circuit 
  2832.        logical evaluation is NOT supported.
  2833.        
  2834.        - Actions may be ONE command or statement ONLY.
  2835.        
  2836.        
  2837.        IfNot
  2838.           
  2839.        This  is  exactly the same as the 'If' statement except  that  it 
  2840.        applies  the opposite logic - i.e. 'Action1' is executed  if  the 
  2841.        Expression  is FALSE and 'Action2' is executed if the  Expression 
  2842.        is TRUE.
  2843.        
  2844.        
  2845.        Dos
  2846.           
  2847.        General forms:  Dos
  2848.                        Dos $C
  2849.                        Dos "CommandLine"
  2850.                        Dos "CommandLine;"
  2851.        
  2852.        
  2853.        The  first form simply invokes a DOS shell which must be left  by 
  2854.        entering 'EXIT' at the DOS prompt to return to the script.
  2855.        
  2856.        The other forms require a parameter which specifies a program  or 
  2857.        DOS command to be run by the command processor.  Normally control 
  2858.        returns to the script as soon as the invoked program  terminates. 
  2859.        To make the program pause for a key press before returning to the 
  2860.        script, put a semi-colon after the 'CommandLine' as shown in form 
  2861.        4 above.
  2862.        
  2863.        As  well as running external programs, The 'Dos' command  can  be 
  2864.        used to carry out any DOS internal commands - For example:
  2865.        
  2866.        Dos "del temp.txt"       {deletes file temp.txt}
  2867.        Dos "ren %$O %$N"        {renames file name in $O to that in $N}
  2868.        
  2869.        Just  as in shell-outs elsewhere in EaziLink, the  main  EaziLink 
  2870.        directory  is  returned  to after a  'Dos'  call,  regardless  of 
  2871.        whether the directory is changed in the DOS shell or not.
  2872.       
  2873.        
  2874.        
  2875.        Chain
  2876.           
  2877.        General forms:  Chain "ScriptName"
  2878.                        Chain $S
  2879.        
  2880.        Where: 'ScriptName' is the name of another script to be chained
  2881.               to.   The name may be simple with no extension  (TEST)
  2882.               or may have a '.SCR' extension (TEST.SCR) or may be a full
  2883.               path name (C:\EAZILINK\SCRIPTS\TEST.SCR). Where no drive
  2884.               or path elements are used the EaziLink default scripts
  2885.               directory is assumed.
  2886.        
  2887.        The 'Chain' command provides a means of leaving one script to run 
  2888.        another  -  The  original script is NOT  returned  to  after  the 
  2889.        chained  script terminates.  When a new script is switched to  in 
  2890.        this  way, all variables are cleared and all script file  handles 
  2891.        are closed before the chained script is executed.
  2892.        
  2893.        A  script executed via the chain command may itself terminate  by 
  2894.        chaining  to another script or even by chaining to  the  original 
  2895.        script which first invoked it.
  2896.        
  2897.        REMEMBER:  Variable  contents and open files  are  NOT  preserved 
  2898.        during chaining but see the Save and Load commands below.
  2899.        
  2900.        
  2901.        Save
  2902.        
  2903.        General form:  Save "filename"
  2904.                       Save $V
  2905.        
  2906.        Where: 'FileName' is the name of a file to which the current
  2907.               variable values are to be saved. '$V' is a string con-
  2908.               taining a file name to which the variables are to be
  2909.               saved.
  2910.        
  2911.        This mechanisn saves all 26 numeric variables, boolean  variables 
  2912.        and  string variables to the named file.  These  variable  values 
  2913.        can then be read back in if required by the Load command.
  2914.        
  2915.        Note: The elements of the script's disk file handling system  are 
  2916.        NOT saved by this mechanism.
  2917.        
  2918.        This  mechanism  is particularly useful when you want  a  chained 
  2919.        script to take on the values of the parent script.
  2920.        
  2921.        
  2922.        Load
  2923.        
  2924.        General form:  Load "filename"
  2925.                       Load $V
  2926.        
  2927.        Where: 'FileName' is the name of a file from which the variable
  2928.       
  2929.               values are to be read. '$V' is a string containing a file
  2930.               name from which the variables are to be read.
  2931.        
  2932.        This  mechanisn  reads  in  all  26  numeric  variables,  boolean 
  2933.        variables  and  string variables from the named  file  which  has 
  2934.        previously had variable information written to it using the  Save 
  2935.        command.   These variable values are then assigned to the  actual 
  2936.        variables in the current script.
  2937.        
  2938.        This  mechanism  is particularly useful when you want  a  chained 
  2939.        script to take on the values of the parent script.
  2940.        
  2941.        
  2942.        AutoClear
  2943.           
  2944.        General form:  AutoClear on
  2945.                  or:  AutoClear off
  2946.        
  2947.        The 'Await' command, by default, clears the history if it makes a 
  2948.        successful match.  AutoClear allows this automatic clearing to be 
  2949.        turned on or off within the script.
  2950.        
  2951.        You may, for example, after a successful 'Await', want to make  a 
  2952.        further  test  for another string in the same  block  of  history 
  2953.        bytes  - In this case you would use the command  'AutoClear  off' 
  2954.        and, maybe, restore it later with 'AutoClear on'.
  2955.        
  2956.        
  2957.        Clear
  2958.           
  2959.        General form:  Clear
  2960.        
  2961.        Used,  if required, when AutoClear is off, to clear  the  history 
  2962.        manually.
  2963.        
  2964.        
  2965.        Delay
  2966.           
  2967.        General form:  Delay T
  2968.        
  2969.        Where: 'T' is the length of time in seconds (range 0..32767) for
  2970.               which the script is to be delayed.
  2971.         
  2972.        
  2973.        Bell
  2974.          
  2975.        Sounds the computer's bell.
  2976.        
  2977.        
  2978.        Error
  2979.           
  2980.        General form:  Error on
  2981.                  or:  Error off
  2982.        
  2983.        When  a  script  command results in an  invalid  operation  being 
  2984.       
  2985.        performed  it normally aborts the script with an  error  message. 
  2986.        Sometimes it is much better to temporarily disable the  automatic 
  2987.        error abort mechanism and test for the error after the  operation 
  2988.        has  been  executed.   The error can be detected  via  a  special 
  2989.        'Error'  boolean variable maintained by the system, which can  be 
  2990.        tested like any other boolean in an 'If' statement.
  2991.        
  2992.        For example suppose you have a script asking for a numeric  input 
  2993.        and wish to force the user to make a valid input:
  2994.        
  2995.        :Loop1
  2996.           $A=Input "Enter a number [0..100]: " 3
  2997.           Error off
  2998.           #A=$A
  2999.           Error on
  3000.           If Error OR (#A<0) OR (#A>100) then goto Loop1
  3001.        
  3002.        The  above  code will loop until a valid numeric input  is  made. 
  3003.        Without the 'Error off' command the script would have aborted  on 
  3004.        a non-numeric input when the '#A=$A' line was executed.
  3005.        
  3006.        IMPORTANT:  Keep Error off/on commands tight around the  specific 
  3007.        command to be tested and test AFTER the 'Error on' command.   The 
  3008.        act of testing for the error clears the internal error flag so if 
  3009.        you  need to test error more than once, assign 'Error' to one  of 
  3010.        the general boolean variables like this:
  3011.        
  3012.        
  3013.        !E=Error
  3014.        If !E & #A=5 then goto etc...
  3015.        If !E then goto etc...
  3016.        
  3017.        
  3018.        Without  the  assignment  to '!E', Error  would  only  have  been 
  3019.        correct for the first test which would clear the error before the 
  3020.        second test got hold of it.
  3021.        
  3022.        The  'Error  off/on'  commands do  not  affect  straight  forward 
  3023.        command  syntax  errors which will always abort a script  in  any 
  3024.        case.
  3025.        
  3026.        
  3027.        Menu
  3028.           
  3029.        General form:  #A=Menu 1st 2nd 3rd
  3030.        
  3031.        Where: '#A' represents any of the 26 numeric variables to which
  3032.               the selected menu option will be assigned.  Options are
  3033.               numbered starting from 1.  Note: Pressing ESC assigns 0 to
  3034.               the variable.
  3035.        
  3036.               '1st','2nd','3rd' are options to appear on a pop-up menu
  3037.               (max 20).  Each option may have a maximum of 28
  3038.               characters. The first non-lower-case character of each
  3039.               option acts as a hot key for the selection of that option.
  3040.       
  3041.        
  3042.        The  Menu  command allows a user to,  interactively,  choose  the 
  3043.        course of action which a script should take dependent on  options 
  3044.        selected  from a pop-up menu.  The jump itself is made  via  'If' 
  3045.        statements  which  test the numeric variable to  which  the  menu 
  3046.        option selected has been assigned.
  3047.        
  3048.        The menu options must not contain spaces - Spaces may be replaced 
  3049.        by  the  underscore character which will be switched for  a  real 
  3050.        space before being displayed.  Any character can be made the hot-
  3051.        key for an option by preceding the required character with a  '^' 
  3052.        symbol.
  3053.        
  3054.        For example:
  3055.        
  3056.        :Again
  3057.           #A=Menu Exit Go_Forward Go_^Back
  3058.           if #A=0 then goto Again
  3059.           if #A=1 then goto End
  3060.           if #A=2 then goto Forward
  3061.           if #A=3 then goto Back
  3062.        
  3063.           etc...
  3064.        
  3065.        would result in a pop-up menu like this:
  3066.        
  3067.        
  3068.                        +--------| Script Menu |---------+
  3069.                        |                                |
  3070.                        | Exit                           |
  3071.                        | Go Forward                     |
  3072.                        | Go Back                        |
  3073.                        |                                |
  3074.                        +--------------------------------+
  3075.        
  3076.        The   highlighted   characters  would  be  'E',   'G'   and   'B' 
  3077.        respectively.   The following 'If' statements control the  script 
  3078.        flow dependent on which menu option is chosen.
  3079.        
  3080.        
  3081.        Input
  3082.           
  3083.        General form:  $A=Input "Prompt" L
  3084.        
  3085.        This  is basically a special form of string  variable  assignment 
  3086.        which enables a user to enter a string of characters, in response 
  3087.        to  a  prompt,  which  is then  assigned  to  the  target  string 
  3088.        variable.
  3089.        
  3090.        See the section on 'String Variables' for full details.
  3091.        
  3092.        
  3093.        Edit
  3094.           
  3095.        General form:  $A=Edit "Prompt" L
  3096.        
  3097.        Just like 'Input' but allows the existing contents of the  string 
  3098.        variable to be edited.
  3099.        
  3100.        See the section on 'String Variables' for full details.
  3101.        
  3102.        
  3103.        Select
  3104.           
  3105.        General form:  $A=Select "Mask"
  3106.        
  3107.        This  is basically a special form of string  variable  assignment 
  3108.        which  enables a user to select a file name interactively  via  a 
  3109.        file 'pick' window as used in other places in EaziLink.
  3110.        
  3111.        See the section on 'String Variables' for full details.
  3112.        
  3113.        
  3114.        YesNo
  3115.           
  3116.        General form:  !B=YesNo "Prompt: " D
  3117.        
  3118.        This  is basically a special form of boolean variable  assignment 
  3119.        which enables a user to reply to a question with a simple Yes  or 
  3120.        No.  The result is assigned to the boolean variable.
  3121.        
  3122.        See the section on 'Boolean Variables' for full details.
  3123.        
  3124.        
  3125.        Slice
  3126.           
  3127.        General form: $A=Slice($B,From,To)
  3128.        
  3129.        This  is basically a special form of string  variable  assignment 
  3130.        which enables a user to assign a specified slice of one string to 
  3131.        another.
  3132.        
  3133.        See the section on 'String Variables' for full details.
  3134.        
  3135.        VARIABLES
  3136.                                      
  3137.        
  3138.        Numeric variables
  3139.           
  3140.        
  3141.        The  26  numeric variables, #A..#Z, can be assigned and  used  in 
  3142.        expressions.  Typical assignments are:
  3143.        
  3144.        #A = 26
  3145.        #M = (#A+#C)*6
  3146.        #V = #V+1
  3147.        #H = #J MOD 2-#Z
  3148.        #X=Menu First Second Third etc...
  3149.        
  3150.        The  last  variation is a special case - See the  'Menu'  command 
  3151.        earlier for details.
  3152.        
  3153.        Expressions  can  include numeric variables,  boolean  variables, 
  3154.        numeric constants, functions, string variables, IF they contain a 
  3155.        proper  ASCII  representation of a valid number, and any  of  the 
  3156.        following elements:
  3157.        
  3158.           *        Multiplication
  3159.           /        Division   (note: integer division result only)
  3160.           DIV      Division   (       - ditto -                  )
  3161.           MOD      Modulus    (note: modulus of integer division )
  3162.           +        Addition
  3163.           -        Subtraction
  3164.           AND      Logical AND
  3165.           OR       Logical OR
  3166.           >        Greater than
  3167.           <        Less than
  3168.           >=       Greater than or equal to
  3169.           <=       Less than or equal to
  3170.           =        Equal to
  3171.           <>       Not equal to
  3172.           TRUE     True       (ordinal value 1)
  3173.           FALSE    False      (ordinal value 0)
  3174.        
  3175.        
  3176.        Normal  operator  precedence  is  observed  in  expressions   and 
  3177.        parentheses can be used to force the evaluation order.
  3178.        
  3179.        For Example:
  3180.        
  3181.        5+2*3       Evaluates to 11
  3182.        (5+2)*3     Evaluates to 21
  3183.        
  3184.        
  3185.        Expressions  can  be tested logically using  the  'If'  statement 
  3186.        which has the general form:
  3187.        
  3188.        If Expression then Action1 else Action2
  3189.        
  3190.       
  3191.        Where: 'Expression' can be any arithmetic/logical expression, as
  3192.               defined above, which evaluates to TRUE or FALSE (1 or 0)
  3193.               'Action1' is a command/statement to be executed if
  3194.               'Expression' is TRUE.
  3195.               'Action2' is an optional command/statement to be executed
  3196.               if the 'Expression' is FALSE.
  3197.        
  3198.        
  3199.        Examples:
  3200.        
  3201.        If #G=5 then goto End else goto Loop
  3202.        If #D>#A AND ((#A<=10) OR (#A=0)) then gosub Do else gosub Don't
  3203.        If #X<10 then #X=#X+1 else Return
  3204.        
  3205.        
  3206.        Boolean Variables
  3207.           
  3208.        The  26 boolean variables, !A..!Z, can hold the value TRUE  which 
  3209.        has  a value of 1, or FALSE which has a value of 0.  Any  attempt 
  3210.        to  assign  any  other value will result  in  an  error  message. 
  3211.        Assignments  can be made using other booleans, TRUE or  FALSE  or 
  3212.        any logical expression.
  3213.        
  3214.        Typical assignments would be:
  3215.        
  3216.        !A = TRUE
  3217.        !G = FALSE
  3218.        !K = #A>#B
  3219.        !R = #A<#B OR #H=5
  3220.        !B=Await "Name:" 20
  3221.        !B=Awake "^M" 20
  3222.        !B=YesNo "Continue?: " TRUE
  3223.        
  3224.        The last three forms are special cases discussed below.
  3225.        
  3226.        Boolean variables can be used freely in arithmetic expressions as 
  3227.        if they were there ordinal values 1 and 0.  They are mainly  used 
  3228.        in  the logical expression test field of an 'If'  statement  like 
  3229.        this:
  3230.        
  3231.        If #6>4 AND !D=TRUE then goto LAB1 else goto LAB2
  3232.        
  3233.        One  of  the  most important uses of  boolean  variables  is  the 
  3234.        special assignment case where the result of an 'Await'  statement 
  3235.        is assigned to a boolean.  For example:
  3236.        
  3237.        !B=Await "Name:" 20
  3238.        
  3239.        Here  if the string 'Name:' is received from the  remote  service 
  3240.        within 20 seconds the boolean variable '!B' takes the value  TRUE 
  3241.        (1),  otherwise  it takes the value FALSE  (0).   Typically  this 
  3242.        boolean  can  then  be tested in an  'If'  statement  and  script 
  3243.        control  can branch to a label depending on the boolean's  value.  
  3244.        For Example:
  3245.        
  3246.       
  3247.        !B=Await "Name:" 20
  3248.        If !B then goto SendName else goto TryAgain
  3249.        
  3250.        ( Note: 'If !B then' is equivalent to 'If !B=TRUE then' )
  3251.        
  3252.        
  3253.        Another special form of boolean assignment is:
  3254.        
  3255.        !B=Awake "String" 20
  3256.        
  3257.        Where the string 'String' is sent to the remote system to  prompt 
  3258.        a  response.   In  the above example if the  remote  responds  by 
  3259.        sending ANY character/s within the specified 20 seconds then TRUE 
  3260.        (1) is assigned to '!B', otherwise FALSE (0) is assigned to '!B'.
  3261.        
  3262.        
  3263.        Yet another special form of boolean assignment is:
  3264.        
  3265.        !B=YesNo "Prompt: " D
  3266.        
  3267.        Where: '!B' represents any boolean variable.
  3268.               'Prompt' is any question to be asked of the user which can
  3269.               be answered with Yes or No.
  3270.               'D' is an optional default position for the highlighted
  3271.               bar.  'D' may be TRUE in which case the bar will be on
  3272.               Yes when the prompt box 'pops-up' or FALSE in which case
  3273.               it will be on No.  If 'D' is not specified the default is
  3274.               TRUE.
  3275.        
  3276.        For example the script line:
  3277.        
  3278.        !B=YesNo "Continue?: " TRUE
  3279.        
  3280.        would pop-up a response box like this:
  3281.        
  3282.                             +-------------------------+
  3283.                             | Continue?:  Yes   No    |
  3284.                             +-------------------------+
  3285.        
  3286.        The highlighted bar would be on the Yes option.
  3287.        
  3288.        
  3289.        
  3290.        String Variables
  3291.        
  3292.        The  26  string  variables, $A..$Z, can hold  anything  up  to  a 
  3293.        maximum of 80 characters.
  3294.        
  3295.        Typical assignments would be:
  3296.        
  3297.        $A="String"
  3298.        $A=$B
  3299.        $A=Input "Prompt" L
  3300.        $A=Slice($B,From,To)
  3301.        $A=Select "Mask"
  3302.       
  3303.        
  3304.        The  first two are straight forward assignments - The  third  and 
  3305.        fourth and fifth are special forms of assignment discussed below.
  3306.        
  3307.        The  third form allows the user to interactively enter  a  string 
  3308.        during script execution
  3309.        
  3310.        Where: '$A' represents any of the 26 string variables.
  3311.               'Prompt' is an optional prompt which precedes the actual
  3312.               input field (Max 40 characters)
  3313.        
  3314.               'L' is an optional length parameter which sets an upper
  3315.               limit to the length of the string which can be input by
  3316.               the user.
  3317.        
  3318.        
  3319.        Example:
  3320.        
  3321.        The script line:
  3322.        
  3323.        $D=Input " Enter your name: " 40
  3324.        
  3325.        Would pop up an input box like this:
  3326.        
  3327.             +------------------| Script Input |-----------------+
  3328.             | Enter your name:                                  |
  3329.             +---------------------------------------------------+
  3330.        
  3331.        which  would accept an input up to 40 characters long and  assign 
  3332.        it to the string variable $D.
  3333.        
  3334.        Input should normally be terminated by pressing the [RETURN] key.  
  3335.        If the input is terminated with the [ESC] key the contents of the 
  3336.        string  variable remain as they were prior to the  Input  command 
  3337.        being encountered.
  3338.        
  3339.        'Edit'  is in effect just like 'Input' except that  the  existing 
  3340.        contents  of the string variable concerned can be  edited  rather 
  3341.        than simply input from scratch.  For example:
  3342.        
  3343.        $D= "c:\eazilink\capture\eazilink.cap"
  3344.        $D=Edit " Capture file: " 64
  3345.        
  3346.        Would pop up an edit box like this:
  3347.        
  3348.             +------------------| Script Edit |------------------+
  3349.             | Capture file: c:\eazilink\capture\eazilink.cap    |
  3350.             +---------------------------------------------------+
  3351.        
  3352.        which  would  accept editing/input up to 64 characters  long  and 
  3353.        assign the resultant string to the string variable $D.  When  the 
  3354.        box  first  pops-up  the original contents  of  '$D'  occupy  the 
  3355.        editing field with the cursor located at the end of the string.
  3356.        
  3357.        IMPORTANT:  There is no numeric input mechanism built-in, nor  is 
  3358.       
  3359.        such  a  mechanism required.  Any string variable  with  contents 
  3360.        which are the proper ASCII representation of a number may be used 
  3361.        AS IF it was a numeric variable of that value.
  3362.        
  3363.        For example consider the script line:
  3364.        
  3365.        $B=Input "Enter value: " 3
  3366.        
  3367.        Suppose,  in  response  to this command,  the  user  entered  the 
  3368.        digits '145' - Then the next line could quite correctly be:
  3369.        
  3370.        #A=$B
  3371.        
  3372.        Now  the  numeric  variable #A holds  the  value  145.   Likewise 
  3373.        expressions such as:
  3374.        
  3375.        If $B>120 OR #A=6 then goto LAB1 else goto LAB2
  3376.        #C=$B+#A
  3377.        
  3378.        are quite legitimate provided that $B does contain a proper ASCII 
  3379.        numeric representation.  In fact $B could be used anywhere  where 
  3380.        a '#' numeric variable can be used.
  3381.        
  3382.        Note: An empty string does NOT equate to the numeric value 0  and 
  3383.        such a string cannot be used in an expression.
  3384.        
  3385.        Strings  can be concatenated, appended etc. very easily by  using 
  3386.        the  script language's built-in variable substitution  mechanism. 
  3387.        For example:
  3388.        
  3389.        $A="Fred"
  3390.        $A="%$A Bloggs"
  3391.        
  3392.        Now  $A  contains  the string 'Fred Bloggs'  -  Bloggs  has  been 
  3393.        appended to $A.  Similarly after:
  3394.        
  3395.        $B="I think %$A is here."
  3396.        
  3397.        $B  would  contain 'I think Fred Bloggs is here.'   Don't  forget 
  3398.        that  within  quotes  the '%' variable  prefix  is  required  for 
  3399.        substitution to take place.
  3400.        
  3401.        NOTE:  If the substitutions create a string of a  length  greater 
  3402.        than  the maximum string variable length of 80  characters,  only 
  3403.        the  first 80 characters are assigned to the variable - No  error 
  3404.        message is generated.
  3405.        
  3406.        The fourth form of assignment enables any sub-section or  'slice' 
  3407.        of  one  string variable to be assigned to another  (or  even  to 
  3408.        itself!).
  3409.        
  3410.        $A=Slice($B,From,To)
  3411.        
  3412.        Where: '$A'and '$B' represent any string variables.
  3413.               'From' is the first character of the slice of $B and 'To'
  3414.       
  3415.               is the last character of the slice of $B to be assigned
  3416.               to $A.
  3417.        
  3418.               Note: 'From' and 'To' must be in the range 1..80 and, of 
  3419.               course, 'To' must be >= 'From'.
  3420.        
  3421.        Example:
  3422.        
  3423.        $A="It's a funny old world!"
  3424.        $B=Slice($A,8,12)
  3425.        
  3426.        $B would now hold the string 'funny'.
  3427.        
  3428.        Note  that  as in most other situations within  scripts  where  a 
  3429.        numeric  value  is required any expression can be  used  instead. 
  3430.        For Example
  3431.        
  3432.           $A="Welcome to you all!"
  3433.           #C=1
  3434.        :Loop
  3435.           If #C>Length($A) then goto EndLoop  { Exit on end of string }
  3436.           $B=Slice($A,#C,#C)                  { Get next character    }
  3437.           Send $B
  3438.           #C=#C+1                             { Increment position    }
  3439.           Goto Loop                           { Repeat                }
  3440.        :EndLoop
  3441.        
  3442.        The above piece of script sends string $A a character at a time.
  3443.        
  3444.        Note that 'Slice' should be seen as a special kind of  assignment 
  3445.        mechanism only - Unlike other general string functions it can NOT 
  3446.        be used within arithmetic expressions since it does not  evaluate 
  3447.        to a numeric or boolean value.
  3448.        
  3449.        If  the second position parameter is greater than the  length  of 
  3450.        the string being sliced, the second parameter is adjusted to  the 
  3451.        length  of  the string - No error message is generated.   If  the 
  3452.        first  position  parameter is greater than the second or  out  of 
  3453.        range values are used for the two parameters (<1 or >80) then  an 
  3454.        error message is generated.
  3455.        
  3456.        
  3457.        The fifth form offers a way of picking a file name from a  'pick' 
  3458.        window  as  used  in several  situations  within  EaziLink.   The 
  3459.        general form is:
  3460.        
  3461.        $A=Select "Mask"
  3462.        
  3463.        Where: '$A' is any string variable.
  3464.               'Mask' is an optional default path where the pick window
  3465.               is to first display matching files.  The 'Mask' may
  3466.               contain drive, path and file name elements - The filename
  3467.               itself may contain DOS file name wild cards.  If no 'Mask'
  3468.               parameter is specified then all files in the current
  3469.               directory are shown when the window first appears.
  3470.       
  3471.        
  3472.        
  3473.        Example:
  3474.        
  3475.        $F=Select "c:\eazilink\capture\*.cap"
  3476.        
  3477.        Would   list  all  '.CAP'  files  in  the   'c:\eazilink\capture' 
  3478.        directory.
  3479.        
  3480.        When the [RETURN] key is pressed whilst on a valid file name, the 
  3481.        full file name, including drive and path elements, is assigned to 
  3482.        the  string  variable.  If [ESC] is pressed, the string  is  made 
  3483.        empty.   As usual in 'pick' windows within EaziLink,  directories 
  3484.        can  be  changed to and other drives logged onto  from  the  pick 
  3485.        window.
  3486.        
  3487.        
  3488.        Literal Strings
  3489.           
  3490.        
  3491.        Literal string parameters must be enclosed in double quotes (" ") 
  3492.        For example:
  3493.        
  3494.        "Hello World"
  3495.        
  3496.        If double quote characters are required WITHIN the literal string 
  3497.        itself they must be doubled up like this:
  3498.        
  3499.        "Press ""Y"" to accept"
  3500.        
  3501.        The above literal will be converted to
  3502.        
  3503.        "Press "Y" to accept"
  3504.        
  3505.        before being used by the script processor.
  3506.        
  3507.        Remember  that Main System Variables like %NDate,  %Password  are 
  3508.        expanded  within literal strings as are the String,  Numeric  and 
  3509.        Boolean script variables provided they are prefixed with the  '%' 
  3510.        character - for example:
  3511.        
  3512.        If  the current date is 8 Nov 1991 and '$M' contains the  message 
  3513.        'Completed' then:
  3514.        
  3515.        "Date: %NDate - %$M"
  3516.        
  3517.        would be expanded to:
  3518.        
  3519.        "Date: 08-11-91 - Completed"
  3520.        
  3521.        
  3522.        FUNCTIONS
  3523.        
  3524.        
  3525.        A  number  of functions are supported which may  be  included  in 
  3526.        arithmetic expressions where they are substituted for the numeric 
  3527.        or boolean constant to which they evaluate. Examples:
  3528.        
  3529.        #A=Length($D)
  3530.        If Length($B)>1 then goto LAB2 else goto LAB2
  3531.        !T=Equal($A,$C)
  3532.        !T=Equal($A,"Test")
  3533.        If PosL("You",$L)
  3534.        
  3535.        Note: Both string literals (those enclosed in quotes) and  string 
  3536.        variables may be used as parameters within functions.
  3537.        
  3538.        
  3539.        Length
  3540.           
  3541.        General form:  Length($x)
  3542.        
  3543.        Where: '$x' is any string variable/literal.
  3544.        
  3545.        Returns: The length of the specified string.
  3546.        
  3547.        
  3548.        PosL
  3549.           
  3550.        General form:  PosL($x,$y)
  3551.        
  3552.        Where: '$x' and '$y' are any two string variables/literals.
  3553.        
  3554.        Returns:  The  starting position of the LEFT-MOST  occurrence  of 
  3555.        '$x'  in '$y' if '$y' contains '$x' as a sub-string  -  Otherwise 
  3556.        '0' is returned.  The test is NOT case sensitive.
  3557.        
  3558.        Note:  String  variables  can be up to  80  characters  long  and 
  3559.        characters  within them are numbered 1..80. (NOT 0..79 as is  the 
  3560.        case in certain other languages).
  3561.        
  3562.        If PosL returns '0' then '$y' does not contain '$x'.
  3563.        
  3564.        Example:
  3565.        
  3566.        $A="This is a simple test"
  3567.        #P=PosL("simple",$A)
  3568.        
  3569.        Now '#P' contains the value '11'
  3570.        
  3571.        
  3572.        PosR
  3573.          
  3574.        General form:  PosR($x,$y)
  3575.        
  3576.        Where: '$x' and '$y' are any two string variables/literals.
  3577.       
  3578.        
  3579.        This works exactly like 'PosL' except that it returns the  RIGHT-
  3580.        MOST occurrence of '$x' in '$y'.
  3581.        
  3582.        
  3583.        Equal
  3584.           
  3585.        General form:  Equal($x,$y)
  3586.        
  3587.        Where: '$x' and '$y' are any two string variables/literals which
  3588.               are compared for equality (case is NOT significant).
  3589.        
  3590.        Returns:  TRUE  (1)  if the strings are the  same  or  FALSE  (0) 
  3591.        otherwise.
  3592.        
  3593.        
  3594.        Numeric
  3595.           
  3596.        General form:  Numeric($x)
  3597.        
  3598.        Where: '$x' is any string variable or literal.
  3599.        
  3600.        Returns:  TRUE  (1)  if  the  string  contains  a  proper   ASCII 
  3601.        representation  of a number in the range -32768..32767  or  FALSE 
  3602.        (0) otherwise.
  3603.        
  3604.        
  3605.        Exists
  3606.           
  3607.        General form:  Exists($x)
  3608.        
  3609.        See the 'File Commands' section below for details.
  3610.        
  3611.        Where: '$x' is any string variable/literal.
  3612.        
  3613.        Returns:  TRUE (1) if the file name held in '$x' exists or  FALSE 
  3614.        (0) otherwise.
  3615.        
  3616.        FILE COMMANDS
  3617.        
  3618.        
  3619.        10  file handles numbered from 0..9 are available to  the  script 
  3620.        writer.  Script files may be opened, written to and read from  in 
  3621.        a  variety of ways.  If a file is successfully opened it MUST  be 
  3622.        closed when finished with.
  3623.        
  3624.        Open, Create, Append
  3625.           
  3626.        General forms: Open(n) "FileName"
  3627.                       Create(n) "FileName"
  3628.                       Append(n) "FileName"
  3629.        
  3630.        Where: 'n' is any of the file handles (0..9)
  3631.               'FileName' is the full name of the file (string variable
  3632.               or literal) to be opened which may optionally include
  3633.               full drive/path elements.
  3634.        
  3635.        Open     - Opens a file for reading from only.
  3636.        Create   - Creates a new file ready for writing to from the
  3637.                   beginning. If the named file exists it is overwritten.
  3638.        Append   - Opens an existing file for writing to but adds
  3639.                   anything written to it to the end of the file's
  3640.                   current contents.
  3641.        
  3642.        
  3643.        The 'Error off/on' mechanism can be used to check for the success 
  3644.        or otherwise of any of these operations.
  3645.        
  3646.        Note:  If the 'FileName' is 'PRN' then Write and WriteLn  can  be 
  3647.        used to send data to the printer on LPT1.
  3648.        
  3649.        
  3650.        Close
  3651.           
  3652.        General form: Close(n)
  3653.        
  3654.        Where: 'n' is any of the file handles (0..9)
  3655.        
  3656.        Close  MUST  be used on any file which was  successfully  opened, 
  3657.        after it has been finished with.
  3658.        
  3659.        
  3660.        Write, WriteLn
  3661.           
  3662.        General forms: Write(n) "Hello world!"
  3663.                       WriteLn(n) $A
  3664.                       Write(n) #B
  3665.                       WriteLn(n)
  3666.        
  3667.        Where: 'n' is any of the file handles (0..9)
  3668.        
  3669.        Notice  that  literal strings or variables may be written  to  an 
  3670.        open file.
  3671.       
  3672.        
  3673.        Write    - Simply writes the expanded parameter to the file.
  3674.        WriteLn  - Does just what Write does but then writes a CR/LF
  3675.                   sequence to the file as required for line separation
  3676.                   by a standard DOS text file.  Note that in the case of
  3677.                   WriteLn only, the parameter may optionally be omitted
  3678.                   in which case just the CR/LF is written.
  3679.        
  3680.        Where  the  parameter  to be written to a file is  a  numeric  or 
  3681.        boolean variable, it's ASCII representation is written.
  3682.        
  3683.        
  3684.        Read, ReadLn
  3685.           
  3686.        General forms: Vx=Read(n)
  3687.                       Vx=ReadLn(n)
  3688.        
  3689.        Where: 'n' is any of the file handles (0..9)
  3690.               'Vx' is any of the string, numeric or boolean variables.
  3691.        
  3692.        This  is  really  a special form  of  variable  assignment  which 
  3693.        enables  the  contents  of  a file to be  assigned  to  a  script 
  3694.        variable.
  3695.        
  3696.        Read     - This reads a SINGLE character from the file and
  3697.                   assigns it to 'Vx'.  Any CR/LF characters will be read
  3698.                   in and assigned to 'Vx' just like any other characters
  3699.                   by this command.
  3700.        
  3701.        ReadLn   - This reads a full line of text from a file, up to the
  3702.                   CR/LF end of line characters.  Apart from acting as
  3703.                   line-end markers for the ReadLn, the CR/LF sequences
  3704.                   are effectively skipped and are NOT included in the
  3705.                   assignment to 'Vx'.
  3706.        
  3707.        Note: ReadLn will only read in and assign a string of text up  to 
  3708.        80 characters long.  Any characters beyond 80 are simply  ignored 
  3709.        - no error is reported.
  3710.        
  3711.        If  the  assignment  is made to a  numeric  or  boolean  variable 
  3712.        (#x=ReadLn(0) or !x=ReadLn(0)) then the character/s read in  must 
  3713.        be   a  valid  ASCII  representation  of  a  number  or   boolean 
  3714.        respectively.  For example if a text file has the following form:
  3715.        
  3716.        Hello World
  3717.        125
  3718.        0
  3719.        
  3720.        Then  three  consecutive reads could be made from the  text  file 
  3721.        like this:
  3722.        
  3723.        $S=ReadLn(0)        { $S now holds the string 'Hello World' }
  3724.        #N=ReadLn(0)        { #N now has the value 125              }
  3725.        !B=ReadLn(0)        { !B is now set to FALSE (0)            }
  3726.        
  3727.       
  3728.        If  writing  out variable values to disk with a view  to  reading 
  3729.        them  back  in  at a later stage it is best to  use  WriteLn  and 
  3730.        ReadLn  rather than Write and Read because the CR/LF end of  line 
  3731.        markers  define the size, in bytes, of each variable to  be  read 
  3732.        in.   
  3733.        
  3734.        IMPORTANT:  Any special control codes, like the  carriage  return 
  3735.        code (code 13), embedded in a string, are expanded to their  full 
  3736.        '^?'  form  before being written to the file by  both  Write  and 
  3737.        WriteLn.   Thus the return code 13 would be replaced by the  '^M' 
  3738.        control  code sequence.  This is required because code 13  has  a 
  3739.        special  meaning  within text files and denotes an  end  of  line 
  3740.        situation.
  3741.        
  3742.        When  reading  in strings from disk with ReadLn,  any  '^?'  type 
  3743.        control  sequences are converted to raw control code form  before 
  3744.        assignment  to  the string variable - In line with the  way  such 
  3745.        codes are stored within script string variables.  Such codes read 
  3746.        in  with  Read are NOT converted making it possible for  Read  to 
  3747.        read in the end of line characters themselves which you may  wish 
  3748.        to do in certain cases.
  3749.        
  3750.        
  3751.        Eof
  3752.           
  3753.        General form: !E=Eof(n)
  3754.                      If Eof(n) then etc...
  3755.        
  3756.        Where: 'n' is any of the file handles (0..9)
  3757.        
  3758.        This  function  is used to test whether the end of file  'n'  has 
  3759.        been reached.  'Eof' can be used in an 'If' statement to test for 
  3760.        end of file and exit from a file reading/writing loop.
  3761.        
  3762.        Returns: TRUE (1) if the end of file 'n' has been reached or
  3763.                 FALSE (0) otherwise.
  3764.        
  3765.        Note: Open(n), Create(n) & Append(n) always set Eof(n) to FALSE.
  3766.        
  3767.        
  3768.        Exists
  3769.           
  3770.        General form:  Exists($x)
  3771.        
  3772.        Where: '$x' is any string variable/literal.
  3773.        
  3774.        Returns: TRUE (1) if the file name held in '$x' exists or FALSE
  3775.                 (0) otherwise.
  3776.        
  3777.        
  3778.        Example of file command usage:
  3779.        
  3780.        :Start
  3781.           $F=Input "File name: " 12
  3782.           IfNot Exists($F) then goto start
  3783.        
  3784.           :SendTextFile
  3785.              Error off                   { Detects 'Open' error       }
  3786.              Open(0) $F                  { Open file using handle '0' }
  3787.              Error on
  3788.              IF Error then goto End      { If failed to open - End    }
  3789.              :ReadLoop
  3790.                 Error off
  3791.                 $S=ReadLn(0);            { Read a file line into '$S' }
  3792.                 Error on
  3793.                 If Error then goto End   { If ReadLn failed - End     }
  3794.                 Send "%$S^M^J"           { Send the line + CR/LF      }
  3795.                 If Eof(0) then goto End  { Finish if Eof encountered  }
  3796.                 Goto ReadLoop
  3797.              :End
  3798.              Close(0)                    { Files MUST always be closed}
  3799.        Exit
  3800.        
  3801.        The above piece of script prompts for a file name and then  reads 
  3802.        the file line by line sending each line to the remote.  Note that 
  3803.        you  can  call  'Close' on a file which in fact  failed  to  open 
  3804.        without problems.
  3805.        
  3806.        GENERAL NOTES AND TIPS
  3807.           
  3808.        
  3809.        - Case is not significant.
  3810.        
  3811.        - Spaces in expressions are not required but may be used for
  3812.          clarity.
  3813.        
  3814.        - Spaces after command words ARE required as are those which
  3815.          separate the structuring tokens such as ' then ', ' gosub '
  3816.          etc. within 'If' statements.
  3817.        
  3818.        - One command to a line only.
  3819.        
  3820.        - Labels MUST be on a line to themselves.  Never use the same
  3821.          label name twice in the same script.
  3822.        
  3823.        - The 'T' time parameter used with 'Awake' and 'Await' may be a
  3824.          numeric constant or any valid arithmetic expression.  In most
  3825.          cases where a numeric constant is required, a valid arithmetic
  3826.          expression may be used in it's place.
  3827.        
  3828.        - EaziLink's file name 'guessing' feature, used for downloading,
  3829.          searches the history buffer to find the file name you entered
  3830.          in response to the remote host's request for the name of the
  3831.          file you wish to download.  If you use a script line such as:
  3832.        
  3833.          Await "Waiting to send"
  3834.        
  3835.          to pick up say 'Waiting to send TEST.ZIP ...', you must use the
  3836.          AutoClear command around the Await line to ensure that the file
  3837.          name is not cleared from the history by the success of the
  3838.          Await like this:
  3839.        
  3840.          AutoClear off
  3841.          Await "Waiting to send"
  3842.          AutoClear on
  3843.        
  3844.        - Variable types can generally be cross-assigned directly to
  3845.          each other where such assignment appears to make sense for
  3846.          example:
  3847.        
  3848.          $A="125"
  3849.          #A=568
  3850.        
  3851.          $B=#A  { $B now contains the string '568' }
  3852.          #B=$A  { #B now contains the value 125    }
  3853.        
  3854.        - Where a quoted literal parameter is used (i.e. one enclosed
  3855.          in " "), BOTH main system variables AND the special script
  3856.          variables, both types prefixed with the '%' symbol, are
  3857.          expanded to their full ASCII representation.
  3858.        
  3859.          Control characters prefixed with the '^' symbol are also sub-
  3860.          stituted for the character code they represent.  Thus if you
  3861.       
  3862.          assign:
  3863.        
  3864.          $A="Hello^M"
  3865.        
  3866.          $A will actually contain Hello followed by the return character
  3867.          (code 13) which the '^M' represents - $A is thus 5 characters
  3868.          long not 6!
  3869.        
  3870.          This means that mechanisms such as this may be used:
  3871.        
  3872.          If Equal($A,"^M") then goto GotReturn
  3873.        
  3874.          Here the 'If' statement tests to see if '$A' is equal to the
  3875.          RETURN character.
  3876.        
  3877.          ( Note: See how the file Read & Write routines handle this in a
  3878.            special way )
  3879.        
  3880.          A single variable can generally be used instead of a quoted
  3881.          string parameter, if preferred, in most situations.
  3882.        
  3883.        - Put major sub-routines, that is those which end with a
  3884.          'Return' and are called with a 'Gosub', at the end of your
  3885.          script and use 'Exit' before them in your script.  This will
  3886.          reduce the chances of such routines being run-into by normal
  3887.          sequential script flow which would cause a 'Gosub underflow!'
  3888.          error to be generated.  For example:
  3889.        
  3890.        
  3891.          :Start
  3892.             -
  3893.             -
  3894.             / Main script lines here
  3895.             -
  3896.             -
  3897.          Exit
  3898.        
  3899.          / Normal script flow should never reach this point
  3900.        
  3901.        
  3902.          / The sub-routines below should only be accessed by Gosub calls
  3903.        
  3904.          :Sub1
  3905.             -
  3906.             -
  3907.          Return
  3908.        
  3909.          Sub2
  3910.             -
  3911.             -
  3912.          Return
  3913.        
  3914.          This is not a rule as such and sub-routines can be put anywhere
  3915.          but do take care to only allow them to be accessed by Gosub
  3916.          calls.  This is all just like BASIC so those familiar with that
  3917.       
  3918.          language will have no trouble understanding this.
  3919.        
  3920.        - Logging off or hanging up the line MUST be the last thing a 
  3921.          script does.  Do not log off or hang up and then expect the
  3922.          script to do various other things afterwards.  This is because
  3923.          scripts are only able to operate whilst a connection is 
  3924.          present.  As soon as the line is dropped, scripts cease to  run 
  3925.          immediately.  You may have time to do some minor operation
  3926.          after requesting log off but don't try to do too much.
  3927.        
  3928.                                SYSTEM VARIABLES
  3929.        
  3930.        
  3931.        Certain  system  variables,  starting with a  '%'  character  are 
  3932.        supported  within  EaziLink.   If these variables  are  found  in 
  3933.        Macros,  Script  Reply  commands, file  transfer  definitions  or 
  3934.        host mode menus and display files they are replaced as follows:
  3935.        
  3936.        
  3937.        Originate Mode
  3938.        
  3939.        %password      Replaced by the password in the current dialling 
  3940.                       directory entry.
  3941.        %port          Replaced by the current comms port number.
  3942.        %speed         Replaced by the current baud rate.
  3943.        %linespeed     Replaced by the actual line speed.
  3944.        %parity        Replaced by the current parity,  represented by a
  3945.                       single upper case character 'N' (none), 'O' (odd),
  3946.                       'E' (even), 'M' (mark), 'S' (space).
  3947.        %file          Replaced by the file name specified by the user
  3948.                       for upload or download. (used in file transfer
  3949.                       definitions and optional external utilities etc.)
  3950.        %path          Replaced by the current path.  This can be useful
  3951.                       in file transfer definitions within EAZILINK.PRO.
  3952.                       EaziLink always logs onto the file path where it
  3953.                       wants incoming files to be stored, in both
  3954.                       Originate and Host modes, immediately prior to
  3955.                       starting the file transfer.  %path can be used to
  3956.                       prevent file path specifications, transmitted by
  3957.                       DSZ Ymodem and Zmodem, from influencing the
  3958.                       incoming file's location on your disk.
  3959.        %time          Replaced by the time in hh:mm format.
  3960.        %ndate         Replaced by the date in dd-mm-yy format.
  3961.        %rdate         Replaced by the date in yy-mm-dd format.
  3962.        
  3963.        
  3964.        Host Mode
  3965.        
  3966.        %port, %parity and %path as above.  
  3967.        
  3968.        %ansi          A single upper case letter indicating whether ANSI
  3969.                       displays are in operation - 'Y' yes or 'N' no.
  3970.        %hotkey        A single upper case letter indicating whether the
  3971.                       Hot-key option is in operation - 'Y' yes, or 'N'
  3972.                       no.
  3973.        %expert        A single upper case letter indicating whether the
  3974.                       short expert menus are in operation - 'Y' yes, or
  3975.                       'N' no.
  3976.        %first         Current caller's first name.
  3977.        %last          Current caller's last name.
  3978.        %password      Current caller's password.
  3979.        %speed         Baud rate. (or 'LOCAL' if log-in is local & not
  3980.                       used in file transfer.)
  3981.        %linespeed     As above but showing actual line speed.
  3982.        %arc           The name of an archive file (used in VIEWS.HST).
  3983.       
  3984.        %file          The name of a text file within an archive (used in 
  3985.                       VIEWS.HST).
  3986.        %messagecount  Number of messages in the message base.
  3987.        %areanumber    Number of the current file download area.
  3988.        %areatitle     Title of the current file download area.
  3989.        
  3990.        Note:  DSZ  does  not accept a root path in the  form  'A:\',  as 
  3991.        passed by the %path variable, and DOS's CD command, as valid.  It 
  3992.        will  only  accept a path without a trailing '\'.  You  must  use 
  3993.        upload and download paths which are not root paths if you  intend 
  3994.        to  use %path in a DSZ protocol definition, within  EAZILINK.PRO. 
  3995.        For example If you wish to direct downloads to floppy drive 'A' - 
  3996.        make  the  path 'A:\DOWNLOADS' and %path  will  direct  downloads 
  3997.        correctly.
  3998.        
  3999.        Note: %linespeed will only differ from %speed where a  fixed 
  4000.        DTE  is  in use and the modem has been set to  return  a  CONNECT 
  4001.        string  which reflects line speed rather than DTE speed.   ALWAYS 
  4002.        use %speed as the main speed parameter when running protocols.
  4003.        
  4004.                                H O S T   M O D E
  4005.        
  4006.        
  4007.                                    OVERVIEW
  4008.        
  4009.        The  host  mode  provided  by  EaziLink  provides  powerful   BBS 
  4010.        facilities.   Callers  can  log-on by  entering  their  name  and 
  4011.        password.  Users can elect to use simple TELETYPE or full  colour 
  4012.        ANSI-BBS terminal emulation.  Users calling the host mode must do 
  4013.        so  with  their communications package set for 8  DATA  BITS,  NO 
  4014.        PARITY,  1 STOP BIT (8-N-1) and Xon/Xoff handshaking.  Baud  rate 
  4015.        is flexible and may be any rate which the host modem can scan for 
  4016.        and detect.  EaziLink's host mode expects extended reply  strings 
  4017.        like 'CONNECT 1200' to be returned by the modem when a connection 
  4018.        is made.  The EaziLink host mode also requires the carrier detect 
  4019.        pin  to  be  raised  when a carrier  signal  is  detected  and  a 
  4020.        connection made.
  4021.        
  4022.        If the carrier signal is lost during communication, provided that 
  4023.        the  remote user is not currently in the host machines DOS  shell 
  4024.        or  a type 2 door, EaziLink will automatically recycle  and  wait 
  4025.        for the next call.  EaziLink has it's own carrier watch built-in. 
  4026.        If  the  remote  caller is in a door  without  it's  own  carrier 
  4027.        monitoring, or has used the Sysop password to enter the DOS shell 
  4028.        and the carrier is lost, EaziLink will recover by carrying out  a 
  4029.        soft re-boot.  To force EaziLink to go back on-line in host  mode 
  4030.        after  a  carrier loss re-boot either use 'EAZILINK /H'  in  your 
  4031.        AUTOEXEC.BAT  file on your hard disk or put a specially  prepared 
  4032.        system  disk  in  drive A: with  the  required  AUTOEXEC.BAT  and 
  4033.        CONFIG.SYS  files etc. on it.  No external carrier watch  program 
  4034.        is needed if you set up the system as directed.  EaziLink  should 
  4035.        be able to recover in all carrier loss situations.
  4036.        
  4037.        If your modem is not reasonably Hayes compatible, you may not  be 
  4038.        able to use host mode.
  4039.        
  4040.        The  host mode incorporates a sophisticated message base,  doors, 
  4041.        news bulletins, archive viewing, file upload/download  facilities 
  4042.        and an on-line chat feature.  Messages can be posted to any other 
  4043.        user on the system or to all users, They may be marked private if 
  4044.        desired, in which case only the named recipient and the  original 
  4045.        sender may read them.  When a user logs on, he is informed of the 
  4046.        presence  of any new messages addressed to him, which he has  not 
  4047.        yet read.  Where such messages exist the user is given the option 
  4048.        of reading them immediately.
  4049.        
  4050.        We strongly recommend that you set up separate 'Host Main  Path', 
  4051.        'Host  Download Path' and 'Host Upload Path' directories  in  the 
  4052.        Host  Mode configuration section to keep all uploads &  downloads 
  4053.        away from your other file areas and messages and host mode system 
  4054.        files  together.  Although you may make the download  and  upload 
  4055.        paths the same, it is easier to spot new uploads if they are kept 
  4056.        separate.  Please  note  that the 'Host Download  Path'  is  made 
  4057.        redundant  if  you elect to set up multiple file  areas.   Please 
  4058.        note  that protocols like Zmodem and Ymodem which allow paths  to 
  4059.       
  4060.        be specified during uploading can be dangerous.  For example if a 
  4061.        user  uploaded a file called 'C:\CONFIG.SYS' it could  over-write 
  4062.        your  config  file even though you have set up a  separate  'Host 
  4063.        Upload Path'.  DSZ allows switches and environment strings to  be 
  4064.        set  to  prevent this.  A new system variable  '%path'  has  been 
  4065.        introduced  to help in some such cases.  The '%path' variable  is 
  4066.        replaced by the current path.  In both Originate & Host modes the 
  4067.        receiving  path  is  made  current  immediately  prior  to   file 
  4068.        transfer.   The '%path' variable can thus be used to good  effect 
  4069.        with  DSZ  to  override incoming  path  specifications  (see  DSZ 
  4070.        documentation).
  4071.        
  4072.        If any of the file transfer protocols which have been defined  in 
  4073.        EAZILINK.PRO are NOT to be offered to callers in host mode,  then 
  4074.        make  sure  they  have been entered  in  EAZILINK.PRO  using  the 
  4075.        optional  semi-colon  (;)  modifier.
  4076.        (See the FILE TRANSFER PROTOCOLS section earlier in the manual)
  4077.        
  4078.        EaziLink  uses  the  computers  time  and  date  system  in  both 
  4079.        Originate mode, for the usage log, and in Host mode to date stamp 
  4080.        messages  and keep track of a callers last time on.  Always  make 
  4081.        sure the time and date are set correctly before using EaziLink.
  4082.        
  4083.        Note:   If  you  use a utility which increases the  size  of  the 
  4084.        keyboard buffer, or in any way relocates the keyboard buffer, you 
  4085.        may  find that the host mode (S)hell command causes the  computer 
  4086.        to  hang  when  invoked by the remote user.   This  will  not  be 
  4087.        obvious  in  (L)ocal test mode because a different  mechanism  is 
  4088.        used to invoke the shell.  Avoid such keyboard enhancing programs 
  4089.        when  using  EaziLink in host mode.  It has  been  reported  that 
  4090.        Doors  type  2  and the remote shell option  do  not  work  under 
  4091.        Desqview which does not appear to support CTTY?.   
  4092.        
  4093.        IMPORTANT: The remote use of the host shell and doors type 2 rely 
  4094.        on  the DOS feature CTTY for their operation.   These  mechanisms 
  4095.        will  therefore only work with communication ports  supported  by 
  4096.        DOS  itself  - i.e. generally ports 1 and 2.   If  you  configure 
  4097.        EaziLink  to  work  on  port 3 or 4 it  will  function  fully  in 
  4098.        originate  mode  and  will also function in host  mode  with  the 
  4099.        exception of the two features mentioned above. 
  4100.        
  4101.                                  PROGRAM FILES
  4102.        
  4103.        
  4104.        The  following  files  are either supplied or  generated  by  the 
  4105.        facilities within EaziLink's Host mode:
  4106.        
  4107.            HOST.LOG   Host caller log file        (Generated by program)
  4108.            USER.HST   The user list file.         (Generated by program)
  4109.            LOGO.HST   Host opening logo.          (Generated by user)
  4110.          NOTICE.HST   Special notice screen.      (Generated by user)
  4111.          LOGOFF.HST   Special log-off screen.     (Generated by user)
  4112.         NEWUSER.HST   Special New User text.      (Generated by user)
  4113.         WELCOME.TXT   Teletype welcome screen.    (Generated by user)
  4114.         WELCOME.ANS   ANSI welcome screen.        (Generated by user)
  4115.        FILELOGO.TXT   Teletype file area logo.    (Generated by user)
  4116.        FILELOGO.ANS   ANSI file area logo.        (Generated by user)
  4117.        MESSLOGO.TXT   Teletype message area logo. (Generated by user)
  4118.        MESSLOGO.ANS   ANSI message area logo.     (Generated by user)
  4119.        XXXXXXXX.XXX   File descriptions.          (Generated by user)
  4120.         MESSAGE.IDX   Message base index file.    (Generated by program)
  4121.               n.MSG   Message texts (n = number)  (Generated by program)
  4122.               *.MNU   Host mode menu files.       (Supplied)
  4123.               *.HLP   Host mode help files.       (Supplied)
  4124.         RECYCLE.BAT   File to be run on recycle.  (Generated by user)
  4125.           BATCH.BAT   Compresses the mailbag.     (Generated by user)
  4126.          COLOUR.HST   Colour translation table.   (Generated by user)
  4127.         MAILBAG.MSG   Message mailbag.            (Generated by program)
  4128.        
  4129.        Please  note  that  all  files marked  (Generated  by  user)  are 
  4130.        optional and need not exist for the host mode to function.  Where 
  4131.        the user chooses to create these files they must be in the  'Host 
  4132.        Main  Path' directory.  The 'MESSAGE.IDX' file  is  automatically 
  4133.        created  in  the  'Host Main Path' directory  and  is  maintained 
  4134.        directly  by  EaziLink.   The  'n.MSG'  files  are  created   and 
  4135.        maintained by EaziLink in the 'Host Message Path' directory.  The 
  4136.        HOST.LOG  file,  if  activated, is created  and  updated  in  the 
  4137.        EaziLink   main  directory  (NOT  the  'Host  Main  Path').    If 
  4138.        RECYCLE.BAT  exists in the 'Host Main Path' it is run  each  time 
  4139.        the  host mode recycles ready for the next call.  The '.MNU'  and 
  4140.        '.HLP' files supplied with EaziLink must be located in the  'Host 
  4141.        Main  Path'  - they are the menus and help screens  displayed  to 
  4142.        callers.
  4143.        
  4144.                                  SPECIAL CODES
  4145.        
  4146.        
  4147.        In some cases two separate files with the same name but different 
  4148.        extensions,  '.ANS'  and '.TXT', need to be created if  you  want 
  4149.        both  ANSI  and TELETYPE users to receive an  appropriate  screen 
  4150.        display.   Where this is so, it is mentioned in the  'SETTING  UP 
  4151.        HOST  MODE'  section.  The special codes described below  may  be 
  4152.        used in the '.TXT' variant of such files but must NOT be used  in 
  4153.        true '.ANS' files.
  4154.        
  4155.        With  the  exception  of  'LOGO.HST'  the  text  files  with  the 
  4156.        extensions  '.TXT'  or  '.HST'  may  contain  system   variables, 
  4157.        described  in the 'SYSTEM VARIABLES' section, and special  codes, 
  4158.        prefixed  with  the '^' symbol, to add colour and  other  special 
  4159.        effects.   Since these codes play a major part in the  appearance 
  4160.        of  the  host  mode they will be described in  detail  before  we 
  4161.        discuss  the setting up of the host mode proper.  Such  variables 
  4162.        and codes must NOT be used in LOGO.HST because it is shown before 
  4163.        the  caller actually logs-on and no caller details are  known  at 
  4164.        that point.
  4165.        
  4166.        Special codes are prefixed by the '^' symbol.  Here are the  non-
  4167.        colour related codes:  
  4168.        
  4169.           ^^   DISPLAY THE ^ CHARACTER ITSELF
  4170.           ^G   RING BELL
  4171.           ^M   RETURN
  4172.           ^J   LINE-FEED
  4173.           ^L   CLEAR-SCREEN
  4174.           ^H   BACKSPACE-DELETE
  4175.           ^Z   A special code used only in menus - described in the
  4176.                'SETTING UP HOST MODE' section later.
  4177.           ^A   All following text in the same line is sent only to  ANSI 
  4178.                users - another ^A will cancel.
  4179.           ^T   All following text in the same line is sent only  to  TTY 
  4180.                users - another ^T will cancel.
  4181.           ^Dnn This  command introduces a delay between  characters  of 
  4182.                'nn' 1/100ths of a second for all following characters in 
  4183.                the  same line of text.  A ^D0, or the line end,  cancels 
  4184.                the delay.  The range for 'nn' is 0..99.
  4185.           
  4186.        In the case of '^A', '^T' and '^Dnn', the switch only affects the 
  4187.        current  line of text - it is automatically cancelled at the  end 
  4188.        of the line.
  4189.         
  4190.        
  4191.        Examples:
  4192.           
  4193.        "Hello %first,
  4194.        
  4195.        I  see  you have ^T not^T chosen to receive ANSI  colour  screens 
  4196.        etc..."
  4197.           
  4198.        Only TTY users would see the 'not' in the above text.
  4199.       
  4200.           
  4201.           
  4202.        "Hello %first,
  4203.           
  4204.        ^D10The EaziLink^D15^H^H^H^H^H^H^H^H^D10EAZILINK BBS..."
  4205.           
  4206.        The above text would be slowly displayed as if being typed  live.  
  4207.        After  'EaziLink' is displayed the speed drops even more  as  the 
  4208.        word is deleted and replaced with 'EAZILINK' in capital letters.
  4209.        
  4210.        
  4211.        The  special  codes  used to generate colours  are  of  the  form 
  4212.        '^Cnn'.  These codes are ignored by the TELETYPE driver thus they 
  4213.        can  be used freely in any text which is to be shown to ANSI  and 
  4214.        TELETYPE users alike.  The sequence '^Cnn' turns the ANSI  colour 
  4215.        or effect 'nn' on.  The 'nn' is a one or two digit standard  ANSI 
  4216.        number required for the chosen colour or effect as listed below: 
  4217.        
  4218.                                   ANSI values 
  4219.        
  4220.             0   Normal default               1   High intensity 
  4221.             5   Blink on                     7   Reverse video 
  4222.             8   Concealed                   30   Black foreground 
  4223.            31   Red foreground              32   Green foreground 
  4224.            33   Yellow foreground           34   Blue foreground 
  4225.            35   Magenta foreground          36   Cyan foreground 
  4226.            37   White foreground            40   Black background 
  4227.            41   Red background              42   Green background 
  4228.            43   Yellow background           44   Blue background 
  4229.            45   Magenta background          46   Cyan background 
  4230.            47   White background 
  4231.        
  4232.        For example, a 'XXXXXXXX.XXX' file description line:
  4233.        
  4234.        ^C1^C33EAZILINK.ZIP^C35   A new British comms package.^C0 
  4235.        
  4236.        would  display  the file name in high intensity  yellow  and  the 
  4237.        description  in  high intensity cyan.  The ^C0 at  the  end  sets 
  4238.        colour back to default - don't leave it out!  
  4239.        
  4240.        The  above  line would appear coloured to ANSI users  and  normal 
  4241.        monochrome to TELETYPE users. 
  4242.        
  4243.        Note:  If  a special code sequence requires only a  single  digit 
  4244.        value  and  the  next proper text character is  a  digit  -  e.g. 
  4245.        '^C180386  chip details.', pre-fix the special code value with  a 
  4246.        '0'  to make it two digits long - thus making it '^C0180386  chip 
  4247.        details.' instead.  This will prevent the system from associating 
  4248.        the text digit, 8 in the above example, with the special code.
  4249.        
  4250.        
  4251.                              SETTING UP HOST MODE
  4252.        
  4253.        The host mode can be set up to be as simple or as complex as  the 
  4254.        Sysop  wishes  -  many of the features  are  optional.   In  it's 
  4255.        simplest  form,  host mode offers just one download file  area  - 
  4256.        i.e.  the  directory specified in the configuration's  host  mode 
  4257.        section.  News bulletins, doors, file viewing facilities, mailbag 
  4258.        archiving, recycle operations need not be defined.  
  4259.        
  4260.        If a full featured host mode is required the following facilities 
  4261.        may be made available to callers:
  4262.        
  4263.        
  4264.        News Bulletins
  4265.        
  4266.        Up  to  16 news items may be defined in a file  called  NEWS.HST. 
  4267.        This file must be in the 'Host Main Path' directory as must  each 
  4268.        news text file.  Each news item entry in NEWS.HST must consist of 
  4269.        a single line of the following form: 
  4270.         
  4271.        FILENAME.EXT; TITLE; l 
  4272.        
  4273.        Where FILENAME can be any name and EXT any extension.  If EXT  is 
  4274.        not included then .NWS is assumed.  Note: Path names must NOT  be 
  4275.        included. The TITLE is the news item's title to appear on-screen.  
  4276.        TITLE can be up to 60 characters long and may contain '^' special 
  4277.        codes  as  may the news bulletin itself.  The  'l'  represents  a 
  4278.        single  character - either 'Y' or 'N'. This should be set to  'Y' 
  4279.        if special '^' codes or '%...' system variables have been used in 
  4280.        the  text  of the news item - otherwise enter 'N' to  indicate  a 
  4281.        standard ascii file.  The 'N' switch option has been provided  to 
  4282.        enable  the Sysop to get an ascii file from any source and  offer 
  4283.        it  as  a  news  bulletin without having to  check  that  no  '^' 
  4284.        characters   exist  in  the  file,  which  would   otherwise   be 
  4285.        interpreted by EaziLink as special control codes. 
  4286.        
  4287.        Example NEWS.HST file:
  4288.         
  4289.        HISTORY.NWS; ^C32Full EaziLink release history.^C0;Y
  4290.        LATEST.NWS;  ^C32Latest EaziLink v4.0.^C0;Y 
  4291.        
  4292.        The  titles would be displayed in green (^C32).  The  news  files 
  4293.        HISTORY.NWS  and  LATEST.NWS  must be in  the  'Host  Main  Path' 
  4294.        directory.  These text files may also contain '^ ' special  codes 
  4295.        and system variables (use the 'Y' switch), or may be plain  ascii 
  4296.        files (use the 'N' switch). The two ';' field separators must  be 
  4297.        present - one or more spaces may be located before or after  them 
  4298.        if desired. 
  4299.        
  4300.        Note: NEWS.HST may be edited from within host mode itself but you 
  4301.        MUST  drop  back into EaziLink's main menu and  enter  host  mode 
  4302.        again before any changes will take effect. 
  4303.        
  4304.        
  4305.        Multiple Download Areas
  4306.        
  4307.        Up  to 16 separate download file areas can be defined in  a  file 
  4308.        called  FILES.HST.  This file must be located in the  'Host  Main 
  4309.        Path' directory.  If it does not exist then the 'Host Down  Path' 
  4310.        in  the  configuration  section will be the  download  path  made 
  4311.        available,  just as in earlier EaziLink releases.  The  FILES.HST 
  4312.        file  is  a  normal ASCII file in which each  line  represents  a 
  4313.        separate  download  directory  - the form of  each  entry  is  as 
  4314.        follows: 
  4315.        
  4316.        FULL_PATH_NAME; n; TITLE; LOGO; l
  4317.        
  4318.        Where 'FULL_PATH_NAME' is the directory where the group of  files 
  4319.        is to be found, 'n' is the access level required to download from 
  4320.        the directory and 'TITLE' is a file area description of up to  60 
  4321.        characters,  to be displayed to callers - the '^'  control  codes 
  4322.        may  be  used in 'TITLE'. 'LOGO' is the optional name of  a  logo 
  4323.        file to be displayed on entry to that particular file area.   The 
  4324.        'LOGO'  field  may be left empty if no logo is required  BUT  the 
  4325.        third  field  separator MUST be present.  Please  note  that  the 
  4326.        'LOGO' field must be a simple file name only (up to 8  characters 
  4327.        Max.) without an extension.  EaziLink adds the extension .ANS  or 
  4328.        and TELETYPE users.  The logo files must be located in the  'Host 
  4329.        Main Path' directory.  The 'l' field is a single letter -  either 
  4330.        'Y'  or 'N'.  This indicates whether the logo is to be  displayed 
  4331.        every time a caller enters that particular download area.  If set 
  4332.        to  'N' the logo will only be displayed the first time  a  caller 
  4333.        enters  that file area in any one on-line connection.  As in  the 
  4334.        case  of the 'LOGO' field,  the 'l' field may be left  empty  but 
  4335.        the  fourth ';' must be present.  If 'l' is empty but  'LOGO'  is 
  4336.        not, then a default 'l' of 'N' is assumed. 
  4337.        
  4338.        Example FILES.HST file:
  4339.        
  4340.        C:\EAZILINK\SHARE;   0; General  Shareware.; GENLOGO; Y
  4341.        C:\EAZILINK\REG;     5; Registered user  area.; REGLOGO; Y
  4342.        C:\EAZILINK\PRIVATE; 9; Private  test area - no access.;; 
  4343.        
  4344.        In  this example any user can have download access to  the  first 
  4345.        area.  Only users with an access level of 5 or over may  download 
  4346.        from  the second area.  Only users with the highest access  level 
  4347.        of  9  can  download  from the third area.  The  four  ';'  field 
  4348.        separators  must be present - one or more spaces may  be  located 
  4349.        before  or  after  them if desired.
  4350.        
  4351.        In addition, a level of 9 applied to a file area makes it private 
  4352.        in  that  users with access levels lower than  9  cannot  (L)ist, 
  4353.        (W)ide,  (T)ype, (U)pload, or (D)ownload.  This only  applies  to 
  4354.        level  9  and  has been introduced to make it  possible  for  the 
  4355.        contents  of  certain areas to be hidden from  all  but  selected 
  4356.        users.
  4357.        
  4358.        Note: All new users are automatically give an access level of  0.  
  4359.        The  Sysop  could encourage users, via NEWUSER.HST,  to  leave  a 
  4360.        message requesting upgrade. 
  4361.        
  4362.        If  full  descriptions of download files are to be  provided  for 
  4363.        callers,  each file area directory should have within it  a  text 
  4364.        file called 'XXXXXXXX.XXX' which contains one line per file  name 
  4365.        and description.  This file is a standard ascii file, created  by 
  4366.        the  Sysop, and may contain the special '^' control  codes.   The 
  4367.        XXXXXXXX.XXX  file  is  ignored  by  the  (W)ide  option  (as  is 
  4368.        XXXXXXX.BAK)  and  will not be seen by users even  though  it  is 
  4369.        amongst the download files.  When (L)ist is used the contents  of 
  4370.        the  XXXXXXXX.XXX  file  in the current  download  file  area  is 
  4371.        displayed  to the caller.
  4372.        
  4373.        Callers can move between file areas via the (A)rea option on  the 
  4374.        file menu.  If no file areas are defined then the single  default 
  4375.        file  area  logo, if it has been  created,  is  FILELOGO.ANS/TXT. 
  4376.        When  separate file areas are defined each may be  assigned  it's 
  4377.        own  logo  named  in each entry's 'LOGO' field  in  FILES.HST  as 
  4378.        detailed above.  All such logos must be located in the 'Host Main 
  4379.        Path' directory.
  4380.        
  4381.        Note:  FILES.HST may be edited from within host mode  itself  but 
  4382.        you MUST drop back into EaziLink's main menu and enter host  mode 
  4383.        again before any changes will take effect. 
  4384.        
  4385.        
  4386.        Doors
  4387.        
  4388.        It  is possible to run external programs (doors) from  EaziLink's 
  4389.        host  mode.   One of EaziLink's two types of  Door  mechanism  is 
  4390.        compatible with PCBOARD BBS (tm) which means that a large  number 
  4391.        of games and other Door programs written for that system can  now 
  4392.        be  run  from EaziLink's host mode.  The two different  types  of 
  4393.        Door program which can be run from EaziLink are: 
  4394.        
  4395.        Type  1 - PCBOARD compatible door programs which have  their  own 
  4396.        comms I/O built-in.  Immediately before this type of door program 
  4397.        is  run,  a  file PCBOARD.SYS is created in  the  door  program's 
  4398.        directory.  This  file  contains  information  required  by   the 
  4399.        external program. In addition the PCBOARD file, PCBOARD.DAT  must 
  4400.        be  copied into the directory where the Door program is  located. 
  4401.        This  file  also contains information required  by  the  external 
  4402.        program  and  can be obtained from a PCBOARD archive  file.   The 
  4403.        PCBOARD.SYS file is always deleted on return to the main board. 
  4404.        
  4405.        Type 2 - Batch files and/or programs which use DOS I/O ONLY - the 
  4406.        I/O  of  which can be re-directed to the comms port by  the  CTTY 
  4407.        command. All batch file commands can be used with this door  type 
  4408.        as  can  any program which receives it's input and  directs  it's 
  4409.        output  through  the  basic DOS functions.   Programs  which  use 
  4410.        direct hardware access or BIOS calls for their I/O will NOT  work 
  4411.        with  this door type.  The CTTY command is automatically  handled 
  4412.        and  need not be included in door program or batch files.
  4413.       
  4414.        
  4415.        Note:  Type  2  Doors should only be provided if  you  are  using 
  4416.        communications port 1 or 2.
  4417.        
  4418.        Up  to 16 Doors can be defined in a special file DOORS.HST  which 
  4419.        must  be  located in the 'Host Main Path' directory.  This  is  a 
  4420.        standard  ascii file containing one definition per line with  the 
  4421.        following structure: 
  4422.        
  4423.        n;  l; t; Title; FullPathName
  4424.        
  4425.        The  'n' is a single digit, 0..9, representing the  access  level 
  4426.        required  to run the Door.  The 'l' is a letter 'Y' (Yes) or  'N' 
  4427.        (No)  which  indicates whether EaziLink's built-in  soft  re-boot 
  4428.        recovery should be employed if the line drops whilst a door is in 
  4429.        use.   The 't' indicates which Door type the program requires  (1 
  4430.        or  2).  'Title' is the name of the Door program to be  displayed 
  4431.        to  the caller (60 chars Max.). 'FullPathName' is the  full  file 
  4432.        name,  including drive, path and parameters, of the Door  program 
  4433.        (64 chars Max.) - this may be a short file name or DOS command if 
  4434.        the door is of type 2. 
  4435.        
  4436.        Example DOORS.HST file:
  4437.        
  4438.        5; N; 1; BlackJack; C:\EAZILINK\GAMES\PCB21V17.EXE PCB21V17.CFG
  4439.        
  4440.        Here users with an access level of 5 or over can play  BlackJack. 
  4441.        The  'N'  indicates that the Door program  monitors  the  carrier 
  4442.        itself  so the EaziLink soft re-boot recovery will not be  needed 
  4443.        if the line drops. In type 1 door definitions the file name  must 
  4444.        include  the .COM, .EXE or .BAT extension because each file  type 
  4445.        is handled differently.  Type 2 doors are always executed by  the 
  4446.        command processor so a file name extension is not needed - indeed 
  4447.        DOS  internal commands can be executed via this type of  door  if 
  4448.        desired.  Type 2 doors are ideal for executing batch files  which 
  4449.        can  be written to carry out simple or very complex tasks  -  the 
  4450.        possibilities are almost unlimited.
  4451.        
  4452.        The four ';' field separators must be present - they may have one 
  4453.        or more spaces on either side if desired. 
  4454.        
  4455.        Please  note  that  immediately before a door  is  run,  EaziLink 
  4456.        changes  to the directory path contained in 'FullPathName'  -  if 
  4457.        any.   Thus  when the program runs it can find all  it's  support 
  4458.        files  in  it's  own, current, directory.   This  is  also  where 
  4459.        PCBOARD.SYS  is  automatically created and also where  the  Sysop 
  4460.        should  put the PCBOARD.DAT file if the door is of type  1.   The 
  4461.        PCBOARD.SYS  file  is NOT created for door type  2.   The  system 
  4462.        variables  can be used in a door program parameter list  to  pass 
  4463.        information from the main board to a door program or batch  file. 
  4464.        (see: SYSTEM VARIABLES) 
  4465.        
  4466.        
  4467.        Archive Viewing
  4468.        
  4469.        The Host mode file section has an archive View feature.  Files in 
  4470.        any archive may be listed and any text file within an archive can 
  4471.        be  read,  on-line,  by a caller.  The file  menu  option  (V)iew 
  4472.        invokes  external de-archiving utilities, which the  Sysop  must 
  4473.        provide.   Archive types may be ARC, ZIP, PAK or any other  which 
  4474.        becomes  available.   To  make Viewing  facilities  available,  a 
  4475.        special ascii file named 'VIEWS.HST' must be created in the 'Host 
  4476.        Main  Path'  directory.  Within this file up to 5  different  de-
  4477.        archiving tools may be defined - one per line.  The file's format 
  4478.        is as follows: 
  4479.        
  4480.        ext;  list;  extract
  4481.        
  4482.        The  field 'ext' is the 3 letter archive type's  extension.   The 
  4483.        'list'  field  contains  the  de-archiving  utility's  name   and 
  4484.        parameters  required  to  generate a list  of  files  within  the 
  4485.        archive.  The 'extract' field contains the de-archiving utility's 
  4486.        name and parameters required to extract a single named file  from 
  4487.        an archive.  The archive file's name is included in the parameter 
  4488.        list  by use of the %arc system variable and the text file to  be 
  4489.        extracted  (for reading) from an archive is passed in the  system 
  4490.        variable  %file.   The  'list' and 'extract'  field  entries  may 
  4491.        contain the full path names of the de-archiving tools or just the 
  4492.        short  file name if the tools are located in a directory  pointed 
  4493.        to by the DOS PATH command. 
  4494.        
  4495.        Example VIEWS.HST file:
  4496.        
  4497.        ZIP; PKUNZIP/V %arc; PKUNZIP %arc  %file 
  4498.        ARC; PKXARC/V %arc;  PKXARC %arc %file
  4499.        PAK; PAK v %arc;     PAK e %arc %file 
  4500.        
  4501.        The two ';' field separators must be present - one or more spaces 
  4502.        may  be  located  before  or  after  them  if  desired.   Callers 
  4503.        selecting  the View option are prompted to enter the name of  the 
  4504.        archive, the contents of which they wish to view.  A simple short 
  4505.        file  name  without drive, path or wild card components  must  be 
  4506.        entered.   If  no  extension  is  included  then  EaziLink   will 
  4507.        automatically  find the first matching file which has any one  of 
  4508.        the extensions defined in the 'Ext' fields of VIEWS.HST.  If  for 
  4509.        example  the caller types 'EAZILINK' and the file  'EAZILINK.ARC' 
  4510.        exists  then  the VIEWS.HST utility installed to  deal  with  ARC 
  4511.        files will automatically be used to process the file. 
  4512.        
  4513.        
  4514.        Batch Message Compression
  4515.        
  4516.        Callers  may optionally fill a Mailbag with messages, news  items 
  4517.        etc.  and download it using the message area Batch command.   The 
  4518.        caller's selected items are added to a file called  'MAILBAG.MSG' 
  4519.        which EaziLink creates in the 'Host Main Path' directory.  If the 
  4520.        optional  file 'BATCH.BAT' has been created by the Sysop  in  the 
  4521.       
  4522.        'Host  Main  Path' directory, the caller is given the  option  of 
  4523.        compressing the mailbag - otherwise the mailbag is downloaded  in 
  4524.        ordinary  ascii form.  The BATCH.BAT file only needs  to  contain 
  4525.        two  command lines - one to archive the 'MAILBAG.MSG'  file,  and 
  4526.        the  second  to delete the original 'MAILBAG.MSG'  file.   It  is 
  4527.        important  to  delete the original file after  archiving  because 
  4528.        EaziLink  will  download the first file in the 'Host  Main  Path' 
  4529.        matching 'MAILBAG.*' regardless of extension - thus any archiving 
  4530.        tool may be used.  This is a typical 'BATCH.BAT' file:
  4531.        
  4532.        pkzip mailbag.zip mailbag.msg
  4533.        del mailbag.msg
  4534.        
  4535.        Note:  the  above example assumes that PKZIP is  in  a  directory 
  4536.        pointed  to  by your PATH command - the 'Host Main Path'  is  the 
  4537.        current   directory   when  'BATCH.BAT'  is  run   so   no   path 
  4538.        specifications are required in the batch file.  
  4539.        
  4540.        
  4541.        Recycle Housekeeping
  4542.        
  4543.        If the optional file 'RECYCLE.BAT' is created by the Sysop in the 
  4544.        'Host  Main Path', it is automatically run after each caller  has 
  4545.        logged off, before the host mode resets itself ready for the next 
  4546.        caller.   This could be used to copy/update files, run a  utility 
  4547.        or  carry  out  any between call  housekeeping  which  the  Sysop 
  4548.        desires.
  4549.        
  4550.        
  4551.        Menu Customisation
  4552.        
  4553.        The  text for most menus is held in external files.   The  default 
  4554.        menu  files are supplied.  If these files are not placed  in  the 
  4555.        'Host  Main  Path'  directory, a short 'Expert'  menu,  which  is 
  4556.        built-in,  is  displayed  instead.  In the  same  way,  all  help 
  4557.        screens are external files which must be placed in the 'Host Main 
  4558.        Path'  directory. If any help file does not exist, a 'No help  is 
  4559.        available!'  message  is displayed to the caller.   Default  .HLP 
  4560.        files  are  supplied.  Menu files have the extension  '.MNU'  and 
  4561.        help file '.HLP'.
  4562.        
  4563.        Since  these  files are standard text files, the Sysop  can  edit 
  4564.        them  to  change the colour and general layout of the  menus  but 
  4565.        remember  that the options available remain the same - the  newly 
  4566.        designed menu should make all available options clear to callers. 
  4567.        The  files  may  include any '^' special  codes  and  any  system 
  4568.        variables.   The  appropriate .HLP file is display when  the  '?' 
  4569.        option is selected. A .HLP file exists for each of the MNU  files 
  4570.        except VERTICAL.MNU and have the same file name as the .MNU files 
  4571.        but with the extension .HLP e.g. MAIN.HLP, DOOR.HLP etc. 
  4572.        
  4573.        The .MNU files are as follows:
  4574.         
  4575.         MAIN.MNU      The MAIN MENU.
  4576.         SYSMAIN.MNU   The MAIN MENU (Sysop extended version)
  4577.       
  4578.         FILE.MNU      The FILES menu.
  4579.         MESSAGE.MNU   The MESSAGES menu.
  4580.         OPTION.MNU    The OPTIONS menu.
  4581.         NEWS.MNU      The news menu which starts - 'NEWS: ...'
  4582.         DOOR.MNU      The door menu which starts - 'DOOR: ...'
  4583.         VIEW.MNU      The view menu which starts - 'VIEW: ...'
  4584.         BATCH.MNU     The batch menu which starts - 'BATCH: ...'
  4585.         EDITOR.MNU    The editor menu which starts - 'EDITOR: ...'
  4586.         EDIT.MNU      The edit menu which starts - 'EDIT: ...'
  4587.         READ.MNU      The message menu which starts - 'READ: ...'
  4588.         MAIL.MNU      The message menu which starts - 'MAIL: ...'
  4589.         FIND.MNU      The message menu which starts - 'FIND: ...'
  4590.        
  4591.        A number of additional items have been added specifically for use 
  4592.        within the .MNU files:
  4593.         
  4594.         1)  A '^Z' string embedded in any of the xxxx.MNU files,  causes 
  4595.             the  display of that file file to terminate abruptly.   This 
  4596.             can be used to ensure that the menu display stops after  the 
  4597.             user-input  prompt thus ensuring that the character  entered 
  4598.             by the user is echoed in the correct position.
  4599.         
  4600.         2)  The system variable %messagecount has been added  to  enable 
  4601.             the current number of messages to be included in MESSAGE.MNU 
  4602.             - for example:
  4603.         
  4604.             ^C0^C32MESSAGES - ^C36There are %messagecount messages.^C0
  4605.         
  4606.         3)  The system variable %areatitle enables the current file area 
  4607.             title  to  be  included in FILE.MNU.   The  system  variable 
  4608.             %areanumber  enables  the  current file area  number  to  be 
  4609.             included - for example:
  4610.         
  4611.             ^C0^C32FILES - AREA %areanumber: ^C36%areatitle^C0
  4612.        
  4613.        Example MAIN MENU definition file:
  4614.         
  4615.         ^C33-MAIN MENU-^C0^C32  - %first %last - %linespeed baud.
  4616.         ^C36^C1(^C33N^C36)ews, (^C33F^C36)iles,  etc...
  4617.         ^C0^C32Your choice %first: ^Z
  4618.         
  4619.         This would appear to a caller called John Smith as:
  4620.         
  4621.         -MAIN MENU- - John Smith - 2400 baud.
  4622.         (N)ews, (F)iles,  etc...
  4623.         Your choice John: _
  4624.         
  4625.        Please note the use of '^Z' to stop the display dead at the point 
  4626.        where the  user's input character needs to be echoed - without it 
  4627.        a  RETURN and  LINE-FEED would be sent and the users input  would 
  4628.        be  echoed  on  the  line  below the  new  menu.   Menus  can  be 
  4629.        completely re-designed or re-coloured  with this system but it is 
  4630.        best  not  to  create very deep menus or you  may  find  that  in 
  4631.        certain  cases  text  scrolls of the screen  before  it  can   be 
  4632.        properly  studied.   Please  note you do not need  to  use  '^C0' 
  4633.       
  4634.        before   '^Z'  to cancel colours, nor are leading  '^C0',  '^M^J' 
  4635.        sequences  or blank  lines required because they  are  hard-wired 
  4636.        into  the program code.  This ensures that,  following  arbitrary 
  4637.        text file output to the screen,  any colours set by ANSI or  '^C' 
  4638.        special   codes in the text file are cancelled and  the  menu  is 
  4639.        always preceded by a blank line when re-displayed.   
  4640.        
  4641.        A special file 'VERTICAL.MNU' contains information about how  the 
  4642.        numbers ahead of vertical menus like Door titles, News bulletins, 
  4643.        File   areas  etc. and the letter which  precedes  file  transfer 
  4644.        protocols,  should   be displayed.  A default file  is  supplied. 
  4645.        The file consists of just one  line of text which is, in  effect, 
  4646.        a  mask  where the number or letter is  represented by  a  single 
  4647.        '*'.  
  4648.        
  4649.        For example if VERTICAL.MNU contains:
  4650.          
  4651.          ^C36[^C33*^C36]
  4652.          
  4653.          vertical menu numbers would appear thus:
  4654.          
  4655.          [1] - Item 1
  4656.          [2] - Item 2
  4657.          etc.
  4658.          
  4659.          Whereas:
  4660.          
  4661.          ^C36<-^C33*^C36->
  4662.          
  4663.          would cause vertical menu numbering to appear thus:
  4664.          
  4665.          <-1-> - Item 1
  4666.          <-2-> - Item 2
  4667.          etc.
  4668.          
  4669.        Two  or three leading indentation spaces and a a trailing '  -  ' 
  4670.        sequence    are   automatically  added  by   the   program.    If 
  4671.        VERTICAL.MNU  does not exist  then the plain number or letter  is 
  4672.        displayed in basic default colours.  No leading or trailing '^C0' 
  4673.        is needed.
  4674.        
  4675.        To make even the short 'Expert' menus re-designable, an  optional 
  4676.        short  Expert  menu file may be created, for each  menu,  in  the 
  4677.        'Host  Main Path' directory.  These files have the same  name  as 
  4678.        the  .MNU  files described above but with a letter 'X'  prefixing 
  4679.        the   name.  For example the Expert menu definition file for  the 
  4680.        NEWS menu  is called 'XNEWS.MNU'.  These 'X' menus should be kept 
  4681.        short or their  purpose is defeated.  The advantage of using  'X' 
  4682.        files  is, of course,  that they can be coloured and reshaped  to 
  4683.        suit  your taste or match the  full menu files that you may  have 
  4684.        designed.
  4685.        
  4686.        The  menu shown under the  different possible circumstances  will 
  4687.        be as follows:
  4688.        
  4689.        Expert Menus On  1) The short 'X' menu on disk - if it exists!  
  4690.                         2) The hard-wired menu  within  the  program.  
  4691.        
  4692.        Expert Menus Off 1) The full menu on disk - if it exists!
  4693.                         2) The short  'X' menu on disk - if it exists!
  4694.                         3) The  hard-wired  menu within the program.  
  4695.        
  4696.        
  4697.        Note:  The  default disk based full menus and  help  screens  are 
  4698.        supplied  in  a  compressed file called TEXT.ZIP  (or  ARC)  from 
  4699.        which they must be extracted.
  4700.        
  4701.        
  4702.        Colour Customisation
  4703.         
  4704.        The  colours used in display files, menus, help screens etc.  can 
  4705.        be controlled by using the '^' special codes within the text - as 
  4706.        described  above and in the 'SPECIAL CODES' section.   
  4707.        
  4708.        The colours of the hard-wired headings messages and prompts  etc. 
  4709.        within EaziLink's host  mode can also be defined by the Sysop.  A 
  4710.        special  file   called 'COLOUR.HST' may be created in  the  'Host 
  4711.        Main Path' directory,  containing the required colour  sequences. 
  4712.        ONLY FOREGROUND colours should  be used in this file - background 
  4713.        changes may create odd effects.  The  COLOUR.HST file consists of 
  4714.        up to 9 lines starting with a colour number  like this:   
  4715.        
  4716.        n:  codes   
  4717.        
  4718.        where 'n' is a digit in the range 1..9 and 'codes' is a string of 
  4719.        digits   and  semi-colons  representing  the  ANSI  colour  codes 
  4720.        required to create the  desired effect.  For Example:
  4721.        
  4722.        2:  1;36    
  4723.        
  4724.        would assign to colour number 2 the codes to produce bright  cyan 
  4725.        text.  The sections of text affected by each colour number are as 
  4726.        follows:  
  4727.        
  4728.        1:   General comments, error messages and prompts.
  4729.        2:   The EDITOR and FIND two line user explanation texts.
  4730.        3:   Expert  menu  headings and section headings  such  as  'News 
  4731.             Bulletins', 'Doors', 'Files', 'File Descriptions' etc.
  4732.        4:   The <PRIVATE>, <Received> & <Not Received> texts in  message 
  4733.             headers.
  4734.        5:   The fixed field names in message headers, field names in  the 
  4735.             FIND mask and line numbers in the message editor.
  4736.        6:   Expert menu round brackets.
  4737.        7:   Expert menu key letters (inside the brackets).
  4738.        8:   Used in conjunction with 9 where two contrasting colours are 
  4739.             used in the same display:
  4740.          
  4741.       
  4742.             1) The 'More?' part of 'More? Y/N'.
  4743.             2) The 'Press' part of 'Press [RETURN]...'
  4744.             3) The remote users chat text colour.
  4745.             4) The file name in the (W)ide display.
  4746.             5) The (V)alidateUser level text prompts.
  4747.             6) The main body of the (U)ser list display.
  4748.             7) The log-in 'Checking for mail' text.
  4749.        
  4750.        9:   Used in conjunction with 8 where two contrasting colours are 
  4751.             used in the same display:
  4752.          
  4753.             1) The 'Y/N' part of 'More? Y/N'.
  4754.             2) The '[RETURN]...' part of 'Press [RETURN]...'
  4755.             3) The Sysop's chat text colour.
  4756.             4) The file size in the (W)ide display.
  4757.             5) The (V)alidateUser level values.
  4758.             6) The validation level in the (U)ser list display.
  4759.             7) The log-in 'Checking for mail' number of messages value.
  4760.          
  4761.        Any  of  the  colour numbers may be defined or left  out  as  you 
  4762.        desire.   If  the 'codes' part of the line is over  8  characters 
  4763.        long it will be ignored (no error message is generated).  If  the 
  4764.        COLOUR.HST  file  does   not exist, a set of default  colours  is 
  4765.        used  which match the colour scheme in the default .MNU and  .HLP 
  4766.        files supplied.
  4767.        
  4768.        Note:  It  is best to avoid using blue or light  blue  foreground 
  4769.        colours  as    this may be displayed on some  callers  monochrome 
  4770.        monitors as underlined   text and can look messy.   
  4771.        
  4772.        
  4773.                             HOST MODE IN OPERATION
  4774.        
  4775.        
  4776.        When  Host  mode is invoked a window is displayed  along  with  a 
  4777.        status line at the foot of the screen.  Host mode is now  waiting 
  4778.        for a call.  After 1 minute a VDU anti-burn feature is  activated 
  4779.        and  the fixed display is replaced by a slowly  scrolling  single 
  4780.        line message.  Operation of Host mode is fairly straight forward. 
  4781.        The  local  Sysop can test it's operation by use of  the  'L'ocal 
  4782.        test  feature.   The 'N'ull modem option puts host  mode  on-line 
  4783.        when EaziLink is being used to connect two computers together via 
  4784.        a  null  modem cable. (See the DIRECT  CONNECTION  section)   All 
  4785.        protocols defined for use with EaziLink are offered in host mode.
  4786.        
  4787.        When  on-line  the bottom line of the host mode  screen  displays 
  4788.        details about the current caller.  Hold down Alt to see a list of 
  4789.        Sysop options which can be selected from the host end - shell  to 
  4790.        DOS,  invoke  the  editor, hang-up, validate a  user,  turn  chat 
  4791.        on/off  etc.  If the user pages you for a chat press  [SPACE]  to 
  4792.        chat or ignore it.  To end a chat session press [ESC].  The Sysop 
  4793.        can make entries or select menu options for a caller at any  time 
  4794.        just  as  if  he  was  in local test  mode.   Chat  mode  can  be 
  4795.        enabled/disabled  by the Sysop at any time whilst waiting  for  a 
  4796.        call  (press 'C') or whilst a caller is on-line (press 'Alt  C'). 
  4797.        The  Sysop  can give a caller a new validation level  whilst  on-
  4798.        line, via the Alt V command.
  4799.        
  4800.        When a user logs on
  4801.        
  4802.        If  a  text file called LOGO.HST is found in  the  EaziLink  main 
  4803.        directory it is displayed to greet users who log onto host  mode. 
  4804.        If no file is found a default logo is shown.  Since this Logo  is 
  4805.        shown before log-on it must be an ASCII text file since it is not 
  4806.        known whether the user uses ANSI at this stage. 
  4807.        
  4808.        When  a  new  user  logs  on for the  first  time,  if  the  host 
  4809.        configuration option 'Open System' is set to NO then access  will 
  4810.        be  denied  to them.  If the system is open they are  invited  to 
  4811.        enter  a  password which they wish to use and  also  to  indicate 
  4812.        whether  they want ANSI displays or not.  Their  name,  password, 
  4813.        and  ANSI  status is automatically entered in the  USER.HST  file 
  4814.        along with an access validation level of 0.  Please note that all 
  4815.        access to the USER.HST file must be via the host mode options  DO 
  4816.        NOT  attempt  to edit USER.HST with a text editor.   USER.HST  is 
  4817.        created  and  updated  automatically  in  the  'Host  Main  Path' 
  4818.        directory.
  4819.        
  4820.        If  the  caller is a new user and the file NEWUSER.HST  has  been 
  4821.        created  in  the  'Host Main Path' directory, then  the  text  is 
  4822.        displayed to the caller.  If the file does not exist, no text  is 
  4823.        displayed.
  4824.        
  4825.        If  a text file NOTICE.HST has been created by the Sysop  in  the 
  4826.        'Host  Main Path' directory it is displayed to the caller.   This 
  4827.        file should be used for special notices to all callers.
  4828.       
  4829.        
  4830.        If  a text file WELCOME.TXT or WELCOME.ANS is found on the  'Host 
  4831.        Main Path' one or the other is displayed depending on whether the 
  4832.        user  has elected ANSI displays or not.  If ANSI mode is set  and 
  4833.        WELCOME.ANS  does  not exist but WELCOME.TXT does then  the  .TXT 
  4834.        file  will  be  shown.  If neither file exists  then  no  welcome 
  4835.        message  is  displayed.   ANSI displays  can  be  created  either 
  4836.        manually or via programs like THE DRAW.  If required, such  files 
  4837.        must be created by the Sysop and put into the 'Host Main Path'. 
  4838.        
  4839.        The Main Menu 
  4840.        
  4841.        (N)ews.......Access the News bulletins.
  4842.        
  4843.        (F)iles......Access the Files section.
  4844.        
  4845.        (M)essages...Access the Message section.
  4846.        
  4847.        (D)oor.......Access the Doors.
  4848.        
  4849.        (O)ptions....Access the user Options sections.
  4850.        
  4851.        (C)hat.......Page the Sysop for a chat.
  4852.        
  4853.        (U)sers......Lists the users in USER.HST. 
  4854.        
  4855.        (?)..........Help.
  4856.        
  4857.        (G)oodbye....Log-off.  Users are offered the option of leaving  a 
  4858.                     message to the Sysop before leaving. 
  4859.        
  4860.        Sysop Extras
  4861.        
  4862.        A user who used the special Sysop password on entering the system 
  4863.        has the following extra facilities.  The (U)ser option also lists 
  4864.        the  user's  password,  validation level  and  ANSI  status.  The 
  4865.        (S)hell  option  allows access to the DOS shell.  The  (K)illUser 
  4866.        option  allows  the removal of a named user from  USER.HST.   The 
  4867.        (V)alidateUser  option allows the Sysop to change the  validation 
  4868.        level of any user. 
  4869.        
  4870.        
  4871.        The News Menu
  4872.        
  4873.        (R)ead......Read a selected news bulletin.
  4874.        
  4875.        (L)ist......List the news bulletin titles.
  4876.        
  4877.        (!).........Add a selected bulletin to the mailbag.
  4878.        
  4879.        (?).........Help.
  4880.        
  4881.        (Q)uit......Quit to the main menu.
  4882.        
  4883.        
  4884.        The File Menu 
  4885.        
  4886.        (A)rea......Change file area - only if multiple area are defined.
  4887.        
  4888.        (L)ist......If the optional file XXXXXXXX.XXX exists in the 
  4889.                    current download directory then lines from it are
  4890.                    listed according to the Search string entered by the
  4891.                    user.  The search string is not case sensitive and
  4892.                    any line from the file which contains the string will
  4893.                    be included in the on-screen listing.  This mechanism
  4894.       
  4895.                    is designed to enable the operator to include file
  4896.                    descriptions in the system and allow users to
  4897.                    selectively list them.  (See the 'Special Host Mode
  4898.                    Files' section later for full details) 
  4899.        
  4900.        (W)ide......A wide (4 across) listing of the available files is
  4901.                    displayed, along with each file's size.  The  File
  4902.                    mask is used as under DOS to  specify particular
  4903.                    files if required. 
  4904.        
  4905.        (V)iew......View the contents of an archive/read a text file
  4906.                    within an archive.  Provided that the Sysop has set
  4907.                    up VIEWS.HST to cope with all archive types on the
  4908.                    board, only the file name without extension needs to
  4909.                    be entered when specifying the archive file to be
  4910.                    viewed - EaziLink will select the correct de-
  4911.                    archiving tool required to view the file.  Once the
  4912.                    archives contents have been listed the following
  4913.                    options are offered:
  4914.        
  4915.                    (L)ist.....List the files again.
  4916.                    (R)ead.....Read a text file within the archive.
  4917.                    (!)........Add a selected text file to the mailbag.
  4918.                    (?)........Help.
  4919.                    (Q)uit.....Quit to the file menu.
  4920.        
  4921.        (T)ype......This is used to type the contents of a standard ASCII
  4922.                    text file on screen. 
  4923.        
  4924.        (U)p........Starts a file upload.  The protocol is prompted for
  4925.                    followed by the file name.  If a non-existent 'Host
  4926.                    Upload Path' has been defined in the configuration
  4927.                    section the user is politely informed that upload
  4928.                    facilities are not available.  This is a simple way
  4929.                    of disabling the upload option.  The caller is asked
  4930.                    if the upload is private.  If he replies 'Y' then the
  4931.                    file is uploaded into a special directory called
  4932.                    'PRIVATE' within the 'Host Upload Path' directory -
  4933.                    EaziLink will create the 'PRIVATE' directory if it
  4934.                    does not exist.  The caller is requested to enter a
  4935.                    description of the file, this description, along with
  4936.                    the file name, is appended to a file called
  4937.                    XXXXXXX.XXX in the upload (or private) directory.
  4938.        
  4939.        (D)own......Starts a file download.  Only files located in the 
  4940.                    current download area's directory will be available.
  4941.                    File descriptions will only be available if the Sysop
  4942.                    has created the XXXXXXXX.XXX file in the current
  4943.                    download area's directory. (See the 'Special Host
  4944.                    Mode Files' section) 
  4945.        
  4946.        (C)hat......Page the Sysop for a chat.
  4947.        
  4948.        (?).........Help.
  4949.        
  4950.       
  4951.        (Q)uit......Quit to the
  4952.        
  4953.        
  4954.        The Message Menu
  4955.        
  4956.        Messages  are held within the system in two parts.   The  message 
  4957.        headers  are kept in a single file called MESSAGE.IDX  which  the 
  4958.        system automatically creates and updates in the 'Host Main Path'. 
  4959.        The text of each message is kept in a separate file, in the 'Host 
  4960.        Message Path' directory, where the file name is a number and  the 
  4961.        extension is '.MSG' e.g. 1.MSG, 2.MSG, 145.MSG etc.  All  message 
  4962.        file handling is carried out through the host mode.  NEVER delete 
  4963.        any message files or the MESSAGE.IDX file manually.   Immediately 
  4964.        after the welcome screen is shown the system does a message check 
  4965.        to see if any new messages, addressed to the current user, exist. 
  4966.        If so he is asked if he wishes to read them immediately.  If  'Y' 
  4967.        is  pressed  the messages are displayed.  To  enter  the  message 
  4968.        section  proper  press  'M' from the main  menu.   The  following 
  4969.        message options are available to all users: 
  4970.        
  4971.        (P)ost......Send a message to another named user.  The user's
  4972.                    name must be found in USER.HST.  If 'ALL' is entered
  4973.                    in response to 'To: ' then the message is deemed to
  4974.                    be an open message to all users and no particular
  4975.                    user will be informed of it's presence.  Otherwise
  4976.                    the named recipient will be informed of it's
  4977.                    existence when he next logs on.  When you have filled
  4978.                    in the 'Subject' and 'Private?' options you are
  4979.                    presented with a line editor for you to create your
  4980.                    message with.  The editor word wraps automatically.
  4981.                    To end the message - enter a period ('.') at the
  4982.                    start of a new line and press RETURN.  The following
  4983.                    editor options are presented after you have finished:
  4984.        
  4985.                    (C)ontinue...Carry on where you left off. 
  4986.                    (E)dit.......Change the text on a selected line. 
  4987.                    (I)nsert.....Insert text at a specified line number. 
  4988.                    (D)elete.....Delete one or more lines of text. 
  4989.                    (L)ist.......List your text for viewing. 
  4990.                    (A)bort......Abort (don't send) the message and exit. 
  4991.                    (S)ave.......Save (send) the message and exit. 
  4992.        
  4993.                    When saved the message is date/time stamped and, if
  4994.                    addressed to a named user, is marked <Not Received>
  4995.                    and also <PRIVATE> if applicable. 
  4996.        
  4997.                    Note: If a user sends a message to the 'SYSOP' then
  4998.                    the message will be directed to the user whose name
  4999.                    has been entered in the 'Sysop's Name' field of the
  5000.                    host mode configuration section.
  5001.        
  5002.        (R)ead......Read messages - you are prompted for a start number.
  5003.                    You may read any message posted by you or to you or
  5004.                    any other messages on the system which have not been
  5005.                    marked <PRIVATE> by the sender.  After reading a 
  5006.       
  5007.                    message you are offered the following options: 
  5008.        
  5009.                    (A)gain....Read the message again. 
  5010.                    (N)ext.....Read the next message. (Or use ENTER)
  5011.                    (P)rev.....Read the previous message. (Or use ENTER)
  5012.                    (R)eply....Reply to the message - message header
  5013.                               created for you. The word 'Subject: ' in
  5014.                               the header is replaced by the words 'Reply
  5015.                               to: ' followed by the original subject
  5016.                               description,  to distinguish the reply
  5017.                               from an original posting.  Otherwise all
  5018.                               is as described in (P)ost above.  Replies
  5019.                               have hidden links to originals so that
  5020.                               related messages can be found via the (+)
  5021.                               and (-) options described below. 
  5022.                    (K)ill.....Kill the message - ONLY those which you
  5023.                               have sent or those addressed to you which
  5024.                               are marked <PRIVATE>.
  5025.                    (G)o.......Goto, and display, a message specified by
  5026.                               it's number.
  5027.                    (!)........Add the current message to the mailbag.
  5028.                    (+)........Scan forward for related messages.
  5029.                    (-)........Scan backwards for related messages. 
  5030.                    (?)........Help.
  5031.                    (Q)uit.....Back to the main MESSAGE MENU. 
  5032.        
  5033.        (S)can......Quick scan through message headers - you are prompted
  5034.                    for the start number. 
  5035.        
  5036.        (N)ew.......Read all messages posted since the current caller was
  5037.                    last on.  All the options available under (R)ead
  5038.                    above, apply.
  5039.        
  5040.        (B)atch.....Enter the message batching section.  The following
  5041.                    options are available to facilitate the manipulation
  5042.                    and downloading of the mailbag:
  5043.        
  5044.                    (A)ll......Add ALL messages in the base to the
  5045.                               mailbag.
  5046.                    (N)ew......Add new messages posted since the callers
  5047.                               last log-on, to the mailbag. 
  5048.                    (R)ange....Add a specified range of messages to the
  5049.                               mailbag.
  5050.                    (P)review..Preview the contents of the mailbag.
  5051.                    (D)ownload.Download the mailbag - the caller is asked
  5052.                               if he wants the mailbag archiving if the
  5053.                               Sysop has created the optional 'BATCH.BAT'
  5054.                               file in the 'Host Main Path' directory.
  5055.                    (C)lear....Clear out the mailbag for a fresh start.
  5056.                    (?)........Help.
  5057.                    (Q)uit.....Quit to the message menu.
  5058.        
  5059.        (F)ind......Find messages which match a message header mask.
  5060.                    The following three line search mask is presented to
  5061.                    be filled in by the caller:  
  5062.       
  5063.        
  5064.                       From:
  5065.                         To:
  5066.                    Subject:
  5067.        
  5068.                    An empty field will match with anything.  Field
  5069.                    entries are not case sensitive and need not be full
  5070.                    words.  For example to find all messages from HARRY
  5071.                    JONES to anyone about WS3000 modems, a suitable mask
  5072.                    would be:
  5073.        
  5074.                       From: HARRY JONES
  5075.                         To: 
  5076.                    Subject: WS3000 
  5077.                    
  5078.                    If all three fields are left empty, the find 
  5079.                    operation is aborted.  When a message has been found 
  5080.                    the caller can respond with a sub-set of the options 
  5081.                    available when reading messages via the (R)ead option 
  5082.                    but only messages matching the mask will be shown.  
  5083.                    Pressing 'Q' quits back to the full (R)ead menu with 
  5084.                    the full range of options once more made available.  
  5085.        
  5086.        (K)ill......Kill a selected message.  You can ONLY kill those
  5087.                    message posted by you or those messages which are
  5088.                    addressed to you AND marked private. 
  5089.        
  5090.        (C)hat......Page the Sysop for a chat. 
  5091.        
  5092.        (?).........Help on the message commands. 
  5093.        
  5094.        (Q)uit......Quit back to the main menu.
  5095.        
  5096.        Sysop Extras
  5097.        
  5098.        The following extra powers are available to anyone who enters the 
  5099.        special  Sysop Password when entering the system.  The Sysop  can 
  5100.        (R)ead and (K)ill any message, without restriction.  When reading 
  5101.        or  scanning  messages,  the sysop is shown a  number  in  square 
  5102.        brackets  after the message number.  This is the  actual  message 
  5103.        file  number (e.g. 14.MSG, 125.MSG etc.) which contains the  text 
  5104.        of  the  message.  This will not necessarily be the same  as  the 
  5105.        message  number.  This would, for example, enable  the  Sysop  to 
  5106.        alter  text  in  messages  whilst outside the  host  mode  if  he 
  5107.        desires. 
  5108.        
  5109.        
  5110.        The Door Menu
  5111.        
  5112.        (O)pen......Open a specified door.
  5113.        
  5114.        (L)ist......List the door programs available.
  5115.        
  5116.        (?).........Help.
  5117.        
  5118.       
  5119.        (Q)uit......Quit to the main menu.
  5120.        
  5121.        
  5122.        The Options Menu
  5123.        
  5124.        (A)nsi......Enables a caller to turn ANSI displays On/Off - the 
  5125.                    selection is saved in the callers record in USER.HST.
  5126.        
  5127.        (H)ot-key...Enables the user to select single key press option
  5128.                    selection  (should only be used on very clean lines).
  5129.                    The selection is saved in USER.HST.
  5130.        
  5131.        (E)xpert....Enables the caller to select the short 'Expert' menus
  5132.                    - the selection is saved in USER.HST.
  5133.        
  5134.        (P)assword..Enables a caller to change his password - the new
  5135.                    password is saved in USER.HST.
  5136.        
  5137.        (C)hat......Page the Sysop for a chat.
  5138.        
  5139.        (?).........Help.
  5140.        
  5141.        (Q)uit......Quit back to the main menu.
  5142.        
  5143.        
  5144.                             SPECIAL HOST MODE FILES
  5145.        
  5146.        
  5147.        XXXXXXXX.XXX
  5148.        
  5149.        These are text files which can be created by the system operator, 
  5150.        to  enable users to see a description of each file available  for 
  5151.        download.  Each  download directory made  accessible  to  callers 
  5152.        needs  it's own 'XXXXXXXX.XXX' file.  These are a standard  ASCII 
  5153.        text files.  Each file name and description must occupy just  one 
  5154.        line.  The same file is used for both ANSI and TELETYPE users and 
  5155.        the  special  control codes described elsewhere, may be  used  to 
  5156.        colour the output for the ANSI callers.
  5157.        
  5158.        The maintenance of 'XXXXXXXX.XXX' is manually carried out by  the 
  5159.        Sysop,  who's responsibility it is to make sure that it  actually 
  5160.        reflects the files on offer in it's download directory. 
  5161.        
  5162.        NEWUSER.HST
  5163.        
  5164.        If this file has been created in the 'Host Main Path', then it is 
  5165.        displayed  to a NEW USER immediately after he logs on.   You  can 
  5166.        provide any guidance which you feel necessary for new users here.  
  5167.        No  separate ANSI file is provided but the special '^' codes  can 
  5168.        be used to colour the output for ANSI users.  
  5169.        
  5170.        NOTICE.HST
  5171.        
  5172.        If this file has been created in the 'Host Main Path', then it is 
  5173.        displayed  to a user immediately after he logs on.  You can  post 
  5174.        any  special  notices which you want everyone to see  here.   The 
  5175.        same  file  is shown to ANSI and TTY callers -  the  '^'  special 
  5176.        codes are supported.
  5177.        
  5178.        LOGOFF.HST
  5179.        
  5180.        If this file has been created in the 'Host Main Path', then it is 
  5181.        displayed  to  a user immediately before he logs off.   The  same 
  5182.        file is shown to ANSI and TTY callers - the '^' special codes are 
  5183.        supported.
  5184.        
  5185.        MESSLOGO.ANS
  5186.        MESSLOGO.TXT
  5187.        
  5188.        If either of these files is created in the 'Host Main Path',  the 
  5189.        the  appropriate one is displayed to the user the FIRST  time  he 
  5190.        enters  the MESSAGE section in any one session.  The file is  not 
  5191.        displayed  on  subsequent visits to the section within  the  same 
  5192.        session.   Any  special message or logo can be included  in  this 
  5193.        way.  The same logic is used as in the case of WELCOME.ANS/TXT as 
  5194.        to which file (ANS/TXT) will be displayed. 
  5195.        
  5196.        FILELOGO.ANS 
  5197.        FILELOGO.TXT
  5198.        
  5199.        If  multiple  download  file  areas have  NOT  been  defined  via 
  5200.        'FILES.HST',  this is provided to serve the same purpose  as  the 
  5201.        MESSLOGO  files described above, but is shown when  entering  the 
  5202.        FILES  section.   If multiple download areas have  been  defined, 
  5203.        each area has it's own logo specified in 'FILES.HST'
  5204.        
  5205.                        D I R E C T  C O N N E C T I O N
  5206.        
  5207.        
  5208.        Setting Up
  5209.        
  5210.        Two  computers  may be connected together directly using  a  null 
  5211.        modem cable.  If EaziLink is run on machines connected this  way, 
  5212.        it  detects  the  null modem  connection  and  takes  appropriate 
  5213.        action.   If  Terminal  mode is entered,  EaziLink  goes  on-line 
  5214.        immediately   -  using  the  communication  settings   from   the 
  5215.        configuration  'Entry Default' record.  If host mode is  entered, 
  5216.        pressing  'N'ull modem will put EaziLink on-line in host  mode  - 
  5217.        the  communications  parameters will be 8-N-1, Xon/Xoff  and  the 
  5218.        baud  rate  as  set in the 'Baud Rate' field  of  the  host  mode 
  5219.        configuration  section.  It is possible to put both machines  on-
  5220.        line  via  Terminal  mode  or to put  one  computer  on-line  via 
  5221.        terminal  mode  and the other via host mode.  Remember  that  the 
  5222.        communications  parameters at each end MUST be the same.   Please 
  5223.        note  that  host mode always uses Xon/Xoff  handshaking  and  the 
  5224.        other  computer must be set to use Xon/Xoff if the link is to  be 
  5225.        reliable.
  5226.        
  5227.        Please  note  that when a Terminal to Host mode set up  is  used, 
  5228.        host mode echoes the Terminal's keystrokes back to it so that the 
  5229.        characters  typed  can  be  seen and  all  appears  normal.   If, 
  5230.        however,  a Terminal to Terminal set up is used this is  not  the 
  5231.        case and both Add Line Feeds and Local Echo must be turned ON  at 
  5232.        both ends.  
  5233.        
  5234.        To  terminate  a  direct connection, the user  must  hang-up  the 
  5235.        computer/s  in  Terminal  mode, using Alt H.  Host  mode  may  be 
  5236.        logged off properly or Alt H may be used.  
  5237.        
  5238.        
  5239.        Uses
  5240.        
  5241.        A  null modem direct connection, as described above, can be  used 
  5242.        to  test  out host mode in a more realistic way  than  using  the 
  5243.        'L'ocal  test option.  Files may be transferred from one  machine 
  5244.        to the other using the installed file transfer protocols such  as 
  5245.        DSZ or the supplied ELX.  Use the highest baud rate at which your 
  5246.        set-up  works reliably, at both ends, - the top two  baud  rates, 
  5247.        19200 and 38400, will only be of use with a direct connection.  
  5248.        
  5249.        (See APPENDIX B for Null Modem Cable information)
  5250.        
  5251.                                  G E N E R A L
  5252.        
  5253.        
  5254.        Call Connection
  5255.        
  5256.        When a call is made, via the dialling directory or from  Terminal 
  5257.        mode, EaziLink will consider a successful connection to have been 
  5258.        made if either:
  5259.        
  5260.        1)  No  connect strings have been defined  in  the  configuration 
  5261.            section and the carrier detect pin (DCD) is raised.
  5262.        2)  Connect  strings  have been defined and  a  matching  connect 
  5263.            string is returned by the modem.
  5264.        
  5265.        It  is important that the modem does NOT keep DCD raised  at  all 
  5266.        times.  Set your modem registers to ensure that it does not.
  5267.        
  5268.        Note: Your modem MUST drive the DCD pin correctly, i.e.  normally 
  5269.        low and raised only when a connection has been made, DCD will  be 
  5270.        monitored throughout the on-line session and EaziLink will return 
  5271.        to  the dialling directory, automatically, if the carrier  signal 
  5272.        is  lost, either accidentally or normally on termination  of  the 
  5273.        connection.   If the DCD pin is NOT driven correctly, i.e.  never 
  5274.        raised, and a connection is established as a result of a  CONNECT 
  5275.        string, EaziLink will go on-line for a moment but will then  drop 
  5276.        back to the dialling directory.  Host mode also relies on the DCD 
  5277.        pin being driven properly.
  5278.        
  5279.        
  5280.        File Selection Windows
  5281.        
  5282.        In  many  situations throughout EaziLink, where a  file  name  is 
  5283.        requested from the user, a file selection window can be opened to 
  5284.        allow a file to be picked out by use of a highlighted cursor bar. 
  5285.        Where  this feature is available the words '(ESC-Select)'  appear 
  5286.        at  the top of the prompt box.  Once in the selection window  you 
  5287.        can  change  drive by pressing the letter of the  drive,   change 
  5288.        directory  by moving the cursor bar to the directory's  name  and 
  5289.        pressing [ENTER], or select a file name by moving the cursor  bar 
  5290.        to the file name and pressing [ENTER].  To abort selection, press 
  5291.        [ESC].   No  matter where you go in your disk  directory  system, 
  5292.        whilst in the window, The full path name of the selected file  is 
  5293.        returned  and  your original EaziLink directory  path  is  always 
  5294.        restored  when  you  exit the window.  So you  cannot  lose  your 
  5295.        bearings by accident whilst using file selection windows. 
  5296.        
  5297.        
  5298.        Command Line Options
  5299.        
  5300.        One  of  three optional command line parameters may  be  used  when 
  5301.        invoking EaziLink:
  5302.        
  5303.        1) C>EAZILINK /Qfilename n,n,n,n
  5304.        
  5305.        Where 'filename' is optional - if it is not included the  default 
  5306.       
  5307.        EAZILINK.DIR  is  assumed.   This  option  enables  the  user  to 
  5308.        instruct  EaziLink  to load and automatically enter  and  dial  a 
  5309.        queue of numbers.  Each number, represented by 'n' in the example 
  5310.        above,  is  the index number, in the dialling directory,  of  the 
  5311.        remote service to be contacted.  Up to 10 numbers can be  defined 
  5312.        in  this  way.  This feature can be used ,in conjunction  with  a 
  5313.        batch  file, to dial a particular contact by name.  For  example, 
  5314.        assuming your local Prestel node is at position number 4 in  your 
  5315.        dialling   directory,  a  batch  file  called   PRESTEL.BAT   and 
  5316.        containing  the  line - 'EAZILINK /Q4' would  automatically  call 
  5317.        your local Prestel node without further user intervention. 
  5318.        
  5319.        If the '/Q' is followed immediately by a dialling directory name, 
  5320.        that  directory  will  be loaded before the  following  queue  of 
  5321.        numbers is dialled.  To load a directory called 'TOPTEN.DIR'  the 
  5322.        correct  command  line  format would be:
  5323.        
  5324.        C>eazilink  /qtopten 1,2,3,4
  5325.        
  5326.        The  directory name may also include drive and path components  - 
  5327.        otherwise  the  EaziLink main directory is assumed.  If  no  file 
  5328.        name extension is included, EaziLink assumes '.DIR'.  Please note 
  5329.        that the form - 'C>eazilink /qtopten', without any queue numbers, 
  5330.        will  cause EaziLink to load 'TOPTEN.DIR' and go directly to  the 
  5331.        dialling  directory ready for use - users may find this a  useful 
  5332.        start-up feature. 
  5333.        
  5334.        
  5335.        2) C>EAZILINK /H
  5336.        
  5337.        This  option loads and runs EaziLink and immediately enters  host 
  5338.        mode, ready to receive a call.  This option could be used with  a 
  5339.        separate 'carrier watch' utility, to enable EaziLink to  recover, 
  5340.        via  a warm boot, if the system hangs whilst a remote user is  in 
  5341.        the DOS shell.  
  5342.        
  5343.        
  5344.        3) C>EAZILINK /Mfilename macro
  5345.        
  5346.        The  macro  command  line parameter is  described  fully  in  the 
  5347.        earlier MACROS section.
  5348.        
  5349.        Please  note that these three command line options  are  mutually 
  5350.        exclusive, i.e. only one can be used at a time.
  5351.        
  5352.        
  5353.        Video Options
  5354.        
  5355.        Certain  video  adapter  related features can  be  controlled  by 
  5356.        setting VIDEO= FLAGS in the environment, where FLAGS is a  string 
  5357.        of options drawn from the following:
  5358.        
  5359.        s+   Suppresses snow generated on certain colour adapters. 
  5360.        c-   Turns colour off.  All output is then monochrome.
  5361.        b+   Use BIOS for all screen output.  Some near compatibles may     
  5362.       
  5363.             be able to use the program using this flag.
  5364.        
  5365.        For  example the DOS command - 'SET VIDEO= s+c-' will  turn  snow 
  5366.        suppression on and colour off.
  5367.        
  5368.        
  5369.        Special keys
  5370.        
  5371.        During user inputs the following editing keys are available:
  5372.        
  5373.        ^Y             Delete all input from the line for a clean start.
  5374.        Cursor Right   Move right one character position
  5375.        Cursor Left    Move left one character position
  5376.        HOME           Jumps to the start of the input
  5377.        END            Jumps to the end of the input
  5378.        INS            Toggle insert/overwrite mode On/Off
  5379.        DEL            Delete the character under the cursor
  5380.        BACKSPACE      Delete the character to the left of the cursor
  5381.        RETURN         Accept the input
  5382.        ESC            Abort the input
  5383.        
  5384.        The ESC key generally cancels activities, leaving current entries 
  5385.        unchanged,  aborting  operations, returning from  hardware  error 
  5386.        messages etc. 
  5387.        
  5388.                                 RELEASE HISTORY
  5389.        
  5390.        
  5391.        Oct. 1988  Version 1.0 first public release of EaziLink.
  5392.        
  5393.        Mar. 1989  Version 2.0 released.
  5394.        
  5395.        Sep. 1989  Version 3.0 released.
  5396.        
  5397.        Mar. 1992  Version 4.0 released.
  5398.        
  5399.                                   APPENDIX A
  5400.        
  5401.                         Common problems and solutions.
  5402.        
  5403.        
  5404.        Problem:
  5405.        EaziLink  goes on-line unexpectedly when dialling  out  commences 
  5406.        (before contact has actually been made), or immediately  terminal 
  5407.        mode is entered. 
  5408.        
  5409.        Solution:
  5410.        Your  modem  may be one of those, like the Dowty  Quattro,  which 
  5411.        holds DCD (the carrier detect pin) high by default, unless it  is 
  5412.        instructed to do otherwise.  EaziLink requires DCD to be  carrier 
  5413.        signal  driven - i.e. to be low initially and only raised when  a 
  5414.        carrier signal is detected.  Set your modem to ensure that DCD is 
  5415.        controlled correctly.  The commonest command to achieve this is
  5416.        '&C1'.  From Terminal mode type 'AT &C1 &W'  then press RETURN  - 
  5417.        This will write the command to the modem's memory.  If this  does 
  5418.        not work check you modem manual to see if a different command  is 
  5419.        required or a dip switch needs setting.
  5420.        
  5421.        
  5422.        Problem:
  5423.        When  a connection is made EaziLink goes online  momentarily  but 
  5424.        then, within 2 or 3 seconds drops back to the dialling directory. 
  5425.        The modems are still connected!
  5426.        
  5427.        Solution:
  5428.        The DCD pins at each end of your modem serial cable are  probably 
  5429.        not  wired  through to each other.  Make sure the  DCD  pins  are 
  5430.        wired correctly (pin 8 on a 25 pin plug, pin 1 on a 9 pin plug).
  5431.        
  5432.        
  5433.        Problem:
  5434.        When  dialling out, the dialling attempt counter always continues 
  5435.        to run until it reaches zero - even if the line is engaged or  no 
  5436.        dial tone is present.
  5437.        
  5438.        Solution:
  5439.        Your  modem,  like the early WS3000 for example, may  not  return 
  5440.        'BUSY'   or  'NO  DIALTONE'  messages  in  which  case  this   is 
  5441.        unavoidable.   Otherwise  check that you are  using  the  correct 
  5442.        value with 'V' and 'X' in the Init and Init1275 strings to enable 
  5443.        the full range of extended modem return messages.
  5444.        
  5445.            
  5446.        Problem:
  5447.        The file transfer system does not work.
  5448.        
  5449.        Solution:
  5450.        Make   sure that your external file transfer protocols,  and  any 
  5451.        batch  files  involved, are in the directory pointed  to  by  the 
  5452.        configuration 'Protocol Path' field.  Check that protocol  driver 
  5453.        names  used  in  batch files include  the  full  path  component. 
  5454.       
  5455.        Ensure  that  the  entries  you have  made  in  EAZILINK.PRO  are 
  5456.        correctly formed. (see: FILE TRANSFER PROTOCOLS)
  5457.        
  5458.        
  5459.        Problem:
  5460.        Text  captured  to disk using Alt C  sometimes  contains  jumbled 
  5461.        sequences  of  characters which are arranged differently  to  how 
  5462.        they were on screen.
  5463.        
  5464.        Solution:
  5465.        This  is   unavoidable.  If received text contains  ANSI  control 
  5466.        characters  which position the cursor etc., the capture  facility 
  5467.        cannot hope to reproduce the screen display exactly.  If you want 
  5468.        to  save  exact, full colour, ANSI images - use the Alt  I  image 
  5469.        capture facility.
  5470.        
  5471.        
  5472.        Problem:
  5473.        When  sending messages via Alt M or sending long macros, many  of 
  5474.        the characters are lost, producing garbage at the other end. 
  5475.        
  5476.        Solution:
  5477.        You need to set the Ascii CD and Ascii LD to a value high  enough 
  5478.        to  prevent this.  If the 1200/75 baud rate is in  use,  EaziLink 
  5479.        automatically includes extra delay - this is in addition to those 
  5480.        which the user specifies - this prevents the modem's buffer  from 
  5481.        being  overrun.  Using Rts/Cts handshaking should also  have  the 
  5482.        same effect.  At other speeds you will need to experiment to find 
  5483.        the  lowest  delay  which will ensure  correct  operation.   With 
  5484.        Prestel and any other service which creates similar problems, use 
  5485.        the special AsciiCD value '999' to make use of the special  'wait 
  5486.        for echo back' feature.
  5487.        
  5488.        
  5489.        Problem:
  5490.        When  dialling  out from terminal mode, the  modem  connects  but 
  5491.        EaziLink always goes on-line at 300 baud regardless of what  baud 
  5492.        rate  is  set  in the default  entry.   Communications  are  thus 
  5493.        impossible at all but 300 baud. 
  5494.        
  5495.        Solution:
  5496.        Remember  that EaziLink uses the full 'CONNECT xxxx'  strings  to 
  5497.        determine  the baud rate at which the modem has  connected.   You 
  5498.        will  need to send the commands which your modem requires to  set 
  5499.        it  to return these extended strings BEFORE you dial (e.g. AT  V1 
  5500.        X1).   If you work from the terminal often you could set  up  the 
  5501.        'Init'  and  'Init1275' strings, which you have  in  your  'Modem 
  5502.        Control Strings' section, as macros for convenience.  If you fail 
  5503.        to  follow  the  above procedure, EaziLink will  take  the  short 
  5504.        'CONNECT'  string, returned for all baud rates, as being the  300 
  5505.        baud extended 'CONNECT|' string and will thus always set the port 
  5506.        to 300 baud. 
  5507.        
  5508.        
  5509.        Problem:
  5510.        With some services EaziLink logs on fine and the text received is 
  5511.        readable, but as soon as the remote system hands over control  to 
  5512.        another,  via  a  front door or gateway,  the  text  received  is 
  5513.        garbage.
  5514.        
  5515.        Solution:
  5516.        Set  the  Strip Bit 7 option in the service's  dialling  directory 
  5517.        entry  to Yes.  Some system require you to contact them at  8-N-1 
  5518.        but  then  hand over control to a sub-system which uses  7-E-1  - 
  5519.        stripping  bit 7 of the incoming 7-E-1 data will usually make  it 
  5520.        readable on your system which is still set to 8-N-1.
  5521.        
  5522.        
  5523.                                   APPENDIX B
  5524.        
  5525.                                Null Modem Cable
  5526.        
  5527.        
  5528.        The  following pin connections in a null modem cable will  enable 
  5529.        EaziLink to work as described in the manual when one computer  is 
  5530.        connected directly to another: 
  5531.        
  5532.        
  5533.                     PC/XT          PC/XT
  5534.                                           
  5535.             TX        2 ------------ 3
  5536.             RX        3 ------------ 2
  5537.             RTS       4 ------------ 5
  5538.             CTS       5 ------------ 4
  5539.             GND       7 ------------ 7
  5540.             DSR       6 ------------ 20
  5541.             DCD    [8--20]         [8--20]   (Wire pin 8 to 20 locally)
  5542.             DTR       20 ----------- 6
  5543.        
  5544.        
  5545.        
  5546.        This  set-up ensures that DCD is held high allowing  EaziLink  to 
  5547.        automatically detect a null modem connection and go on-line.   No 
  5548.        special  'direct connection' option is provided or needed  within 
  5549.        the software itself.
  5550.